我正在尝试创建一个函数来解析 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
应该给出:[电子邮件受保护]
有什么想法或功能可以很好地实现这一点吗?
这是一个坏坏坏坏坏主意,但基本上:
function PHPToText($data, $string) {
ob_start();
eval($string);
return ob_get_clean();
}
你真的应该重新考虑这种设计。执行动态生成的代码本质上从来都不是一个好主意。
在这种情况下应该使用 eval() 来完成
但永远记住:评估是邪恶的!