我将页面内容保存在数据库中,并希望执行字符串中的任何php代码。因此,如果我的字符串是:
<h1>Welcome</h1><?php echo $motto?><br/>
我只想执行echo $motto。使用eval()将尝试执行<h1>Welcome</h1>。
echo $motto
<h1>Welcome</h1>
有什么办法吗?
不用说,您应该尽快找到另一个解决方案。同时,您可以像这样评估代码:
$str = '<h1>Welcome</h1><?php echo $motto?><br/>'; // Your DB content eval("?> $str <?php ");
演示:http://codepad.org/ao2PPHN7
我不能足够强调:eval是危险的,应用程序代码不应位于数据库中。尝试使用模板解析器,例如Smarty,Dwoo或我最喜欢的Twig。