我想将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包含了"hello {$a->getName()},您好吗?“
{$a->getName()}仍然无法解释
问:我找不到如何编写剩余的代码,以便将{$a->getName()}解释为“hello lux,how are you”。有人能帮帮忙吗?
$new_string = ??????
echo $new_string; //echoes hello lux, how are you ?eval()有解决方案吗?(请不要争论关于邪恶的评估;))或任何其他解决方案?
发布于 2010-06-14 22:07:58
看看eval() --这就是你要找的东西(但我同意菲尔的观点,这听起来是个糟糕的做法)
编辑:刚刚看到你知道eval -所以你为什么不这样做:
eval('$string = "'.load_data_from_db().'";');(我还没有测试过,但我几乎可以肯定它是有效的)
发布于 2010-06-14 22:19:45
看起来你正在尝试做一些像多语言字符串这样的事情。
有一种使用sprintf的很好的方法
你放在数据库里面
"hello %s, how are you ?"在你的php代码中你可以这样做。
$string = load_data_from_db();
echo sprintf($string,$a->getName()); // replaces %s with the function value.更改的部分($a->getName())也应该来自数据库,但有单独的查询(可能在A类中)
发布于 2010-06-14 22:04:55
您可以将其保存到一个临时文件,如temp.file,然后执行include('temp.file');
https://stackoverflow.com/questions/3037833
复制相似问题