我正在开发一个测试用户PHP知识的应用程序。用户将输入代码并提交它,应用程序将检查它是否有错误。这不仅包括解析和运行时错误,还包括对问题的响应的适当性。
我能想到的最好方法是在用户代码上运行eval()并检查结果,即如果要求用户创建三个给定水果的数组,他输入:
$fruits = array (
'orange',
'banana'
);
我希望能够查看该数组并确定其大小不是3并在测验中提供反馈。
这是一个非常简单的例子,但这是一般的想法。
毋庸置疑,在表单上接受任意PHP代码并无条件运行eval()的想法纯粹是自杀,但它似乎比在文本上运行一堆正则表达式检查其有效性更有意义。 。那将是一个不完美的解决方案。
我想知道我能做些什么来真正收紧事情,这样人们就不会把恶意代码放在答案中。我注意到PHP安全模式现在已经灭绝,但是有什么类似的吗?我基本上只需要一个PHP模拟器。