我需要评估一个变量中的一些php,并将输出放入另一个变量。
我有以下代码
ob_start();
$php = "echo 'cat';";
eval($php);
$result = ob_get_contents();
ob_end_clean();
echo $result;
有没有什么方法可以在没有输出缓冲的情况下做到这一点?可能带有create_function?
首先,文档(php.net/manual/en/function.eval.php)中立即提到了强制性的"eval是危险的"。
第二,为什么不把$result
放在eval中呢?
$php = "$result = 'cat';
然后你就可以把结果变量全部设置好了。
$output = '';
eval('$output="cat";');
echo $output;