2010-07-13 59 views
0

我有一個看起來像這樣的代碼。變量從文本文件中讀取並傳遞給smarty顯示爲「Home <i> r</i><i> n</i>」?

 $language = "eng"; 
     $append = "_sidebar.txt"; 
     $read_text_file = "languages\\$language$append"; 
     $sidebar = file($read_text_file); 

     $smarty->assign("sidebar_link",$sidebar); 

爲什麼在Smarty的所有變量都這個樣子:

Smarty_Variable Object (3) 
->value = Array (13) 
    0 => "XX<i>\r</i><i>\n</i>" 
    1 => "XX<i>\r</i><i>\n</i>" 
    2 => "XX<i>\r</i><i>\n</i>" 
    3 => "XX<i>\r</i><i>\n</i>" 
    4 => "XX<i>\r</i><i>\n</i>" 

與代表單個詞的XX。 \ r \ n來自哪裏?

回答

1

\r\n只是一個窗口換行符(即「enter」鍵按下)在從您的文件讀取的行末尾。

您可以刪除文件中的所有換行符,也可以按照this forum post上的說明應用strip(或變體)過濾器,以使Smarty爲您過濾掉控制字符。

+0

試過了,但不明白。我加了require('libs/plugins/outputfilter.trimwhitespace.php');並試過$ test = smarty_outputfilter_trimwhitespace_replace(「@@@ SMARTY:TRIM:SCRIPT @@@」,$ _ script_blocks,$ sidebar);但不知道$ _script_blocks的含義是什麼?有沒有更容易的方法來刪除這些東西。我也試過strip_tags($ sidebar),但是顯示空白! – ganjan 2010-07-14 00:10:00

0

「\ n」是一個表示新行或換行的字符,通常在Windows系統中以「\ r」開頭(因爲他們希望爲每個換行符添加額外的字符)。如果沒有換行符,所有的文本都會像「XXXXXXXXXX」一樣流在一起,因爲沒有辦法知道每行的中斷位置。

相關問題