在字符串中执行PHP代码

bma*_*ign 8 php eval

我将我的页面内容保存在数据库中,并希望在字符串中执行任何PHP代码.所以如果我的字符串是:

<h1>Welcome</h1><?php echo $motto?><br/>
Run Code Online (Sandbox Code Playgroud)

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

有什么办法吗?

Wes*_*rch 16

不用说,你应尽快找到另一种解决方案.在此期间,您可以像这样评估代码:

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

eval("?> $str <?php ");
Run Code Online (Sandbox Code Playgroud)

演示:http://codepad.org/ao2PPHN7

我不能强调这一点:eval是危险的,应用程序代码不应该在数据库中.尝试像Smarty,Dwoo或我最喜欢的模板解析器:Twig.

  • ...或者只是`eval("?> $ str");`你只需要跳出PHP块. (2认同)