【问题标题】:smarty->assign() doesn't evaluate the code?smarty->assign() 不评估代码?
【发布时间】:2018-12-11 16:12:44
【问题描述】:

我正在编写一个 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 代码。当我将代码分配给模板时,有没有办法可以直接评估代码?

【问题讨论】:

  • 不,为什么要这样?它不是模板的一部分,它是一个字符串。

标签: php html smarty template-engine assign


【解决方案1】:

使用{eval}

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

如果你提供了 assign 属性,{eval} 函数的输出将被赋值给这个模板变量,而不是被输出给模板。

所以在您的 HTML 文件中使用以下内容:

{eval var=$PLACEHOLDER}

【讨论】:

  • 我只看到这是一个古老的问题 XD 被你的编辑推到了首页
猜你喜欢
  • 2011-01-17
  • 2018-11-05
  • 1970-01-01
  • 2013-02-01
  • 2012-02-10
  • 1970-01-01
  • 2012-10-25
  • 2014-07-26
  • 2011-01-25
相关资源
最近更新 更多