smarty-> assign()不评估代码

时间:2018-07-03 11:04:10

标签: php html smarty template-engine assign

我正在编写一个PHP脚本,该脚本将一些html代码分配给我的模板。

PHP文件:

$smarty->assign("PLACEHOLDER", getCode());
$smarty->display('index.html');

function getCode(){ 
     return "{literal}some code which I want to get evaluated ...{/literal}"; 
}   

HTML文件:

{$PLACEHOLDER}

我知道我可以使用{eval var=$PLACEHOLDER}而不是{$PLACEHOLDER}来正常工作,唯一的是我有大约500个模板,并且我不会更改所有模板的html代码。将代码分配给模板后,是否可以直接评估代码?

1 个答案:

答案 0 :(得分:0)

使用{eval}

{eval}用于将变量评估为模板。可以用于将模板标签/变量嵌入变量中或将标签/变量嵌入配置文件变量中。

如果提供assign属性,则{eval}函数的输出将分配给该模板变量,而不是输出到模板。

因此,在HTML文件中使用以下内容:

{eval var=$PLACEHOLDER}