У меня есть Smarty Loop, как показано ниже:
{strip} {assign "comma" ""} {foreach from=$List item=Item} {$comma}{$Item.title} {assign "comma" ","} {/foreach} {/strip}
.. из которых я EXPECT :
Apple, Banana, Candy
.. ПИСЬМО как ФАЙЛ.
Мои коды PHP (для записи файла):
$f = fopen('myfile.txt', 'w'); fwrite( $f, $smarty->fetch('sample.tpl') );
Но вместо IN REALITY он записывается так:
Apple,Banana,Candy
Даже если я использую \r
или \r\n
в Smarty tpl
, они просто распечатываются, как персонажи.
В любом случае, не нарушать линии .
Как это сделать, пожалуйста?
Из документа {strip}
я цитировал в вашем другом вопросе (и попросил вас прочитать) :
Все, что находится в тегах
{strip}{/strip}
, лишено лишних пробелов или возвратов каретки в начале и в конце строк до их отображения. Таким образом, вы можете сохранить ваши шаблоны доступными для чтения, а не беспокоиться о дополнительном пробеле, вызывающем проблемы.
Одно из решений:
{strip} {foreach name=foo from=$List item=Item} {$Item.title}{if !$smarty.foreach.foo.last}{literal}, {/literal}{/if} {/foreach} {/strip}
,{strip} {foreach name=foo from=$List item=Item} {$Item.title}{if !$smarty.foreach.foo.last}{literal}, {/literal}{/if} {/foreach} {/strip}
Полоска удаляет заготовки и литеральное усилие ,<newline>
– разделитель. NB: пробелы и новая строка имеют смысл между {literal}
и {/literal}
(проверено с помощью smarty 3.1.16)