smarty->assign() 不评估代码?
smarty->assign() doesn't evaluate the code?
我正在编写一个 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-所有这些的代码。有没有一种方法可以在我将代码分配给模板时直接评估代码?
使用{eval}
{eval} is used to evaluate a variable as a template. This can be used for things like embedding template tags/variables into variables or tags/variables into config file variables.
If you supply the assign attribute, the output of the {eval} function will be assigned to this template variable instead of being output to the template.
因此在您的 HTML-文件中使用以下内容:
{eval var=$PLACEHOLDER}
我正在编写一个 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-所有这些的代码。有没有一种方法可以在我将代码分配给模板时直接评估代码?
使用{eval}
{eval} is used to evaluate a variable as a template. This can be used for things like embedding template tags/variables into variables or tags/variables into config file variables.
If you supply the assign attribute, the output of the {eval} function will be assigned to this template variable instead of being output to the template.
因此在您的 HTML-文件中使用以下内容:
{eval var=$PLACEHOLDER}