来自数据库的字符串中的Smarty,函数和变量

时间:2014-07-28 19:57:54

标签: php smarty

我希望能够解析从我的数据库中恢复的字符串中的Smarty函数。

实施例:

$var = 'Something {"modifed by function"|smarty_function} more string';
$this->smarty->assign("var", $var);

我希望Smarty {$ var}能够运行该函数,但它并没有。我怎样才能实现这一目标?

3 个答案:

答案 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"}