将字符串作为 PHP 代码执行并从代码返回打印文本的函数

问题描述 投票:0回答:3

我正在尝试创建一个函数来解析 php 代码并以纯文本形式返回结果,就像在浏览器中读取结果一样。比如这个:

public function PHPToText($data, $php_text) {
    //TODO code
    return $text; 
}

我会像这样调用该函数,其参数如下所示:

$data = array('email' => '[email protected]');
$string = "<?= " . '$data' . "['email']" . "?>";

$text = $this->PHPToText($data, $string);

现在

echo $text
应该给出:[电子邮件受保护]

有什么想法或功能可以很好地实现这一点吗?

php function output eval
3个回答
4
投票

这是一个坏坏坏坏坏主意,但基本上:

function PHPToText($data, $string) {
    ob_start();
    eval($string);
    return ob_get_clean();
}

你真的应该重新考虑这种设计。执行动态生成的代码本质上从来都不是一个好主意。


4
投票

在这种情况下应该使用 eval() 来完成

但永远记住:评估是邪恶的!


2
投票

您需要使用

eval()
函数 http://www.php.net/eval 才能解析变量中的标签
$string

© www.soinside.com 2019 - 2024. All rights reserved.