Smarty 3.1.1杀死换行符

时间:2012-02-28 19:15:30

标签: php html templates smarty newline

我有这个Smarty模板。

<p>
    {foreach from=$fields item=field};{$field.dbName};{/foreach}
</p>

但不是

<p>
    ;test1;;test2;
</p>

它打印出以下信息:

<p>
    ;test1;;test2;</p>

但为什么?

$smarty->compile_dir文件是正确的。但$smarty->display()函数删除了我的换行符。这不是我想要的!我想要模板的1:1输出。

我不想在foreach行的末尾添加空格字符。我不想在foreach行之后添加第二个换行符。

是否有配置可以关闭此“功能”?

1 个答案:

答案 0 :(得分:1)

不可能涵盖所有场景,如果你这样做会怎样:

<p>
  {foreach ...}
     ...
  {/foreach}
</p>

您不希望创建额外的换行符吗?还有PHP:

<p>
  <?php foreach(...): ?> ... <?php endforeach(); ?>
</p>

在最后一个PHP代码块之后,您仍然可以获取新行。

也就是说,Smarty 3.2中将有一个功能,包括在smarty标签之前和之后吃换行。像{-foo}之类的东西会在标记之前吃掉换行符,而{foo-}会在标记之后吃掉换行符。