写入FILE时Smarty到LINE-BREAK?

时间:2014-02-22 10:10:31

标签: php templates smarty newline line-breaks

我有一个如下所示的Smarty循环,例如:

{strip}
    {assign "comma" ""}
    {foreach from=$List item=Item}
        {$comma}{$Item.title}
        {assign "comma" ","}
    {/foreach}
{/strip}

.. I EXPECT 是:

Apple,
Banana,
Candy

..写作文件。

我的PHP代码(写文件)是:

$f = fopen('myfile.txt', 'w');
fwrite( $f, $smarty->fetch('sample.tpl') );

而是 IN REALITY ,它的编写如下:

Apple,Banana,Candy

即使我在Smarty \r中使用\r\ntpl,它们也会被打印出来,就像角色本身一样。
无论如何不打破

请问怎么做?

1 个答案:

答案 0 :(得分:2)

来自{strip}的文档我引用in your other question (并要求您阅读)

  

{strip}{/strip}标记内的任何内容都会被删除多余的空格或回车 at   它们显示之前的行的开头和结尾。这样你可以保持你的   模板可读,不用担心造成问题的额外空白。

一个解决方案:

{strip}
    {foreach name=foo from=$List item=Item}
            {$Item.title}{if !$smarty.foreach.foo.last}{literal},
{/literal}{/if}
    {/foreach}
{/strip}

剥去删除空格和文字强制,<newline>作为分隔符。注意:{literal}{/literal}

之间的空格和换行符 有意义

(使用smarty 3.1.16测试)