【发布时间】:2012-02-28 19:15:30
【问题描述】:
我有这个 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 行之后添加第二个换行符。
是否有关闭此“功能”的配置?
Br
【问题讨论】:
-
不,没有。这是“默认 PHP”行为。如果您需要换行符,请明确说明:
{/foreach}\n\n</p>。 -
@rodneyrehm 默认 PHP 行为?不,当我使用
print "<p>\ntest\n</p>";时,它也可以工作。但只有 Smarty 是行不通的。 -
<p>\n<?php … ?>\n</p>你就会明白我的意思了…… -
@rodneyrehm 是的,我明白了。你说的对。嗯,这不是Smarty的问题。那是一个PHP问题。该死的。
-
问题在于 Smarty 将
{$t}替换为<?php echo $_smarty_tpl->tpl_vars['t']->value;?>。 Smarty 是否有可能(可能通过配置?)从变量中获取内容,而不是使用<?php?>打印变量内容。
标签: php html templates smarty newline