如何执行存储在数据库中的php脚本

时间:2013-08-01 10:01:30

标签: php

以下字符串(来自数据库)存储为变量

str = "if($me == 1) 
{
 return array(9=>true,10=>true,11=>true)
} 
else 
 {
  return  array(9=>false,10=>false,11=>false)
 }"

由于脚本是动态的......因此需要通过传递变量来查找输出。谁能帮助我如何做到这一点。

2 个答案:

答案 0 :(得分:5)

eval()会做你想做的事。

eval($string);

我真的不建议在您的数据库中存储php,因为通常有更多可预测,可读,易懂和可维护的方法来处理基于结果动态运行不同代码的问题。

答案 1 :(得分:0)

你可以这样做:

<?php eval('?>' . $str . '<?php'); ?>

但是,eval不是执行代码的好方法。我不建议将PHP代码存储在数据库中,因为它使调试变得非常困难,并且它可能是不安全的,因为它可能包含恶意代码。

同时查看为什么很多人都说'Eval is Evil':

https://blogs.msdn.com/b/ericlippert/archive/2003/11/01/53329.aspx?Redirected=true https://javascriptweblog.wordpress.com/2010/04/19/how-evil-is-eval/