变量从文本文件读取并传递给smarty显示如“Home <i> \ r </i> <i> \ n </i>”?

时间:2010-07-13 22:46:59

标签: php arrays variables smarty template-engine

我有一个看起来像这样的代码。

        $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 来自哪里?

2 个答案:

答案 0 :(得分:1)

\r\n只是在从文件中读取的行末尾的窗口换行(即“输入”键按下)。

您可以删除文件中的所有换行符,也可以按照this forum post上的说明应用条带(或变体)过滤器,以使Smarty过滤出控制字符。

答案 1 :(得分:0)

“\ n”是一个表示新行或换行符的字符,在Windows系统中通常以“\ _”开头(因为他们喜欢为每个换行添加额外的字符)。如果没有换行符,所有文本都会像“XXXXXXXXXX”一样流动,因为无法分辨每行的断点。