我正在使用Smarty作为我的模板引擎。
但我有一个让我发疯的问题,所以如果你有解决方案,请提供一个具体的例子。
我在mySQL数据库中保存了一些HTML。当我得到它时,我想用正确的变量值替换{$foo}
。
我正在尝试这样做,因为我有一个多语言网站。因此,我们假设这是来自DB的变量$content
中的代码:
$content = <div id="help">{$lang['helpmeout'}</div>
<div id="hello">{$lang['hello']}</div>
现在假设上面的内容来自数据库并且存储在$ content变量中,我怎么说聪明才能捕获括号{}
中的变量并将它们视为普通的PHP代码?我真的无法让它发挥作用。
似乎没有人为此提供有效的解决方案。
请帮忙
答案 0 :(得分:0)
我不知道Smarty是如何运作的。考虑这个片段来解析php变量:
$lang = array('helpmeout' => 'helpMeOut', 'hello' => 'hi');
$content = '<div id="help">{$lang[\'helpmeout\']}</div>
<div id="hello">{$lang[\'hello\']}</div>';
eval('$c = "'.str_replace('"', '\"', $content).'";');
echo $c;
这里的重点是评估$c = "$content"
(scaping“)将解析php变量。
我希望有所帮助。
答案 1 :(得分:0)
Smarty 3知道string resource。如果您需要为此禁用某些Smarty功能,请查看Smarty Security。