Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 用Smarty替换来自DB的字符串_Php_Smarty - Fatal编程技术网

Php 用Smarty替换来自DB的字符串

Php 用Smarty替换来自DB的字符串,php,smarty,Php,Smarty,我正在使用Smarty作为模板引擎 但是我有一个让我发疯的问题,所以如果你有解决方案,请提供一个具体的例子 我在mySQL数据库中保存了一些HTML。当我得到它时,我想用变量的正确值替换{$foo} 我之所以这么做是因为我有一个多语言的网站。因此,我们假设这是来自DB的变量$content中给出的代码: $content = <div id="help">{$lang['helpmeout'}</div> <div id="hello">

我正在使用Smarty作为模板引擎

但是我有一个让我发疯的问题,所以如果你有解决方案,请提供一个具体的例子

我在mySQL数据库中保存了一些HTML。当我得到它时,我想用变量的正确值替换
{$foo}

我之所以这么做是因为我有一个多语言的网站。因此,我们假设这是来自DB的变量
$content
中给出的代码:

$content = <div id="help">{$lang['helpmeout'}</div>
            <div id="hello">{$lang['hello']}</div>
$content={$lang['helpmeout'}
{$lang['hello']}
现在假设上面的内容来自数据库,并且存储在$content变量中,我该如何对smarty说,捕获括号中的变量并将其视为正常的PHP代码?我真的无法让它工作

似乎没有人能找到有效的解决办法


<>请帮助

我不知道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;
$lang=array('helpmeout'=>'helpmeout','hello'=>'hi');
$content='{$lang[\'helpmeout\']}
{$lang[\'hello\']}';
eval(“$c=“”.str\u replace(“”,“\”,$content)。“;”);
echo$c;
这里的要点是,计算
$c=“$content”
(scaping”)将解析php变量


我希望这会有所帮助。

Smarty 3知道。如果您需要为此禁用某些Smarty功能,请查看。

您真的必须将PHP代码存储到数据库中吗?不鼓励将PHP存储到数据库中,人们通常更喜欢创建PHP文件,并根据上下文要求创建。请确保:将它们解释为PHP varIsLabor或SMARTY变量?因此,你必须接受字符串,添加一些标记并将其作为PHP代码进行评估。你还必须考虑变量的范围、插入恶意代码等的可能性,因此,不要尝试使用不同的方法,例如,某些类型的占位符,例如:可能的EVE副本可能是危险的。reous.RTM,然后再决定使用它