一尘不染

在字符串中执行PHP代码

php

我将页面内容保存在数据库中,并希望执行字符串中的任何php代码。因此,如果我的字符串是:

<h1>Welcome</h1><?php echo $motto?><br/>

我只想执行echo $motto。使用eval()将尝试执行<h1>Welcome</h1>

有什么办法吗?


阅读 488

收藏
2020-05-29

共1个答案

一尘不染

不用说,您应该尽快找到另一个解决方案。同时,您可以像这样评估代码:

$str = '<h1>Welcome</h1><?php echo $motto?><br/>'; // Your DB content

eval("?> $str <?php ");

演示:http//codepad.org/ao2PPHN7

我不能足够强调:eval是危险的,应用程序代码不应位于数据库中。尝试使用模板解析器,例如SmartyDwoo或我最喜欢的Twig

2020-05-29