首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何将数据库中的php代码注入php脚本?

如何将数据库中的php代码注入php脚本?
EN

Stack Overflow用户
提问于 2010-06-14 22:00:51
回答 4查看 984关注 0票数 3

我想将php代码存储在我的数据库中,然后将其用于我的脚本中。

代码语言:javascript
运行
复制
class A {
    public function getName() {
        return "lux";
    }
}
// instantiates a new A
$a = new A();

在我的数据库中有这样的数据

代码语言:javascript
运行
复制
"hello {$a->getName()}, how are you ?"

在我的php代码中,我将数据加载到变量$string中。

代码语言:javascript
运行
复制
$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”。有人能帮帮忙吗?

代码语言:javascript
运行
复制
$new_string = ??????
echo $new_string; //echoes hello lux, how are you ?

eval()有解决方案吗?(请不要争论关于邪恶的评估;))或任何其他解决方案?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2010-06-14 22:07:58

看看eval() --这就是你要找的东西(但我同意菲尔的观点,这听起来是个糟糕的做法)

编辑:刚刚看到你知道eval -所以你为什么不这样做:

代码语言:javascript
运行
复制
eval('$string = "'.load_data_from_db().'";');

(我还没有测试过,但我几乎可以肯定它是有效的)

票数 3
EN

Stack Overflow用户

发布于 2010-06-14 22:19:45

看起来你正在尝试做一些像多语言字符串这样的事情。

有一种使用sprintf的很好的方法

你放在数据库里面

代码语言:javascript
运行
复制
"hello %s, how are you ?"

在你的php代码中你可以这样做。

代码语言:javascript
运行
复制
$string = load_data_from_db();
echo sprintf($string,$a->getName()); // replaces %s with the function value.

更改的部分($a->getName())也应该来自数据库,但有单独的查询(可能在A类中)

票数 3
EN

Stack Overflow用户

发布于 2010-06-14 22:04:55

您可以将其保存到一个临时文件,如temp.file,然后执行include('temp.file');

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3037833

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档