我希望能够解析从我的数据库中恢复的字符串中的Smarty函数。
实施例:
$var = 'Something {"modifed by function"|smarty_function} more string';
$this->smarty->assign("var", $var);
我希望Smarty {$ var}能够运行该函数,但它并没有。我怎样才能实现这一目标?
答案 0 :(得分:1)
您只需使用fetch()
(如果您想将输出保存到变量)并将string:
添加到字符串中即可。
例如跑步:
$string = 'Something {"modifed by function"|smarty_function} more string';
echo $smarty->fetch('string:'.$string);
当你有修饰符时:
function smarty_modifier_smarty_function($string)
{
return strtoupper($string);
}
会给你:
通过功能修改的更多字符串
输出
您还可以使用display()
方法:
$string = 'Something {"modifed by function"|smarty_function} more string';
$smarty->display('string:'.$string);
它会给你同样的效果。
答案 1 :(得分:0)
你在控制器内部正在为Smarty做些什么。换句话说,PHP需要这样做并将其传递给模板。你不能只在PHP中分配Smarty字符串进行解析。
答案 2 :(得分:0)
看起来你可以包含一个变量,好像它是一个像这样的模板。
{include file="eval:$var"}