自省用户生成的PHP代码

自省用户生成的PHP代码,php,emulation,eval,Php,Emulation,Eval,我正在开发一个测试用户PHP知识的应用程序。用户将输入代码并提交,应用程序将检查代码是否存在错误。这不仅包括解析和运行时错误,还包括对问题的响应的适当性 我认为最好的方法是对用户的代码运行eval()并检查结果,也就是说,如果用户被要求创建一个包含三个给定结果的数组,他输入: $fruits = array ( 'orange', 'banana' ); 我希望能够查看该数组,确定其大小不是3,并在测验中给出反馈 这是一个非常简单的例子,但这只是一般的想法 不用说,在表单上接受任意PHP代码并

我正在开发一个测试用户PHP知识的应用程序。用户将输入代码并提交,应用程序将检查代码是否存在错误。这不仅包括解析和运行时错误,还包括对问题的响应的适当性

我认为最好的方法是对用户的代码运行eval()并检查结果,也就是说,如果用户被要求创建一个包含三个给定结果的数组,他输入:

$fruits = array (
'orange',
'banana'
);
我希望能够查看该数组,确定其大小不是3,并在测验中给出反馈

这是一个非常简单的例子,但这只是一般的想法

不用说,在表单上接受任意PHP代码并在其上无条件运行eval()的想法纯粹是自杀,但这似乎比在文本上运行一堆正则表达式来检查其有效性更有意义。这将是一个不完美的解决方案


我想知道是否有什么我可以做的,以真正加强事情,使人们不能把恶意代码的答案。我注意到PHP安全模式现在已经消失了,但有什么类似的吗?我基本上只需要一个PHP仿真器。

我认为,PECL扩展可以满足您的需要。

可能会复制非常有趣的。在此之前我从未听说过这个扩展。谢谢你。