2016-03-29 1 views
1

私はここで、この簡単なセットアップを持っています。明らかに、fwriteはそれらを解釈し、ファイルにも同様に書き込みます。これは私が持っていないものです。fwriteのは()

<?xml version="1.0" encoding="UTF-8"?> 
        <rss version ="2.0" xmlns:g="http://base.google.com/ns/1.0"> 
        <channel> 
        <title>myTitle</title> 
        <description>myDesct<description> 

trim空白を削除しません:

マイファイルの出力は次のようになります。私は可読性とインデントのためにこの書式を保持します。確かに、1つの解決策は、次のように書くことです:

<?php 
class myClass { 
    public function writeStuff() { 
     fwrite($handle, "here 
comes 
my 
content"); 
    } 
} 

しかし、これはあまり読めません。何か案は?また、私はそのために\tで働くことができると思います(通常のXML構造のためのタブ(または空白)を維持したい

私の予想結果は、この(XMLファイル)でなければなりません:?

<?xml version="1.0" encoding="UTF-8"?> 
<rss version ="2.0" xmlns:g="http://base.google.com/ns/1.0"> 
<channel> 
    <title></title> 
    <description><description> 
    <link>http://dfu.dev12-1.tro.net/oxid49/<link> 
    <item> 
     <g:id>531a8af7d9a9a5bb53b65a2b9a5356e5</g:id> 
    </item> 
</channel> 
+1

* "トリムで空白が削除されない" * - ['trim()'](http://php.net/manual/en/function.trim.php)を使用している場所は表示されません。 –

+0

@ Fred-ii-質問をする前に自分のコードで試してみました。それ以外の場合は、その文を作成できませんでした。 – DasSaffe

+0

トリムは空白を含まない先頭と末尾の空白を削除するので、ここでは機能しません。 @apokryfosが合意した。 – apokryfos

答えて

1

各行を連結します。あなたはそれにスペース(またはタブ)のたくさんの文字列リテラルを定義しました。追加されましたスペース必要な場合。

fwrite($handle, '<?xml version="1.0" encoding="UTF-8"?>'.PHP_EOL 
     .'<rss version ="2.0" xmlns:g="http://base.google.com/ns/1.0">'.PHP_EOL 
     .'<channel>'.PHP_EOL 
     .' <title>' . $sTitel . '</title>'.PHP_EOL 
     .' <description>' . $sDescription . '<description>'.PHP_EOL); 

もう少し読みやすく、あなたはまだ、出力の制御を維持する。

+0

タブを使用する代わりにスペースをスペースとして書き込むほうがよいでしょう。 PHPは 'str_repeat'という素晴らしい機能を持っています。http://php.net/manual/en/function.str-repeat.php –

+0

しかし、この方法では、すべてのテキストを隣り合わせに配置します。 '\ n'を使った作業は1.行では機能しません:/ – DasSaffe

+0

私は改行を追加しました。彼らは"うまく "動作するはずです。 – apokryfos