2016-03-29 64 views
1

我有這個簡單的設置位置:FWRITE()沒有縮進/空格

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

正如你所看到的,也有在2號線將被寫入幾個空格。顯然,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不會刪除空格。我保持這種格式的可讀性和縮進。當然,其中一種解決方案是這樣寫的:

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

但是你看,這是不太可讀的。有任何想法嗎?另外,我想保持一個很普通的XML結構的選項卡(或空格)(我想我能與\t該工作

我預期的結果應該是這樣的(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

回答

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