我想将 php 代码存储在我的数据库中,然后在我的脚本中使用它。
class A {
public function getName() {
return "lux";
}
}
// instantiates a new A
$a = new A();
在我的数据库中有这样的数据
"hello {$a->getName()}, how are you ?"
在我的 php 代码中,我将数据加载到变量 $string
$string = load_data_from_db();
echo $string; // echoes hello {$a->getName()}, how are you ?
现在 $string 包含“你好 {$a->getName()},你好吗?”
{$a->getName()} 仍未解释
问题:我找不到如何编写其余代码,以便 {$a->getName()} 被解释为“hello lux,你好吗”。有人可以帮忙吗?
$new_string = ??????
echo $new_string; //echoes hello lux, how are you ?
有没有 eval() 的解决方案? (请不要争论邪恶的评估;))或任何其他解决方案?
最佳答案
看看eval() - 这就是你要找的东西(但我同意菲尔的观点,这听起来像是不好的做法)
编辑:刚刚看到您知道 eval - 那么您为什么不这样做:
eval('$string = "'.load_data_from_db().'";');
(还没有测试过这个,但我几乎可以肯定它有效)
关于php - 如何将数据库中的php代码注入(inject)到php脚本中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3037833/