0

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

我能想到的最好方法是在用户代码上运行 eval() 并检查结果,即如果要求用户创建一个包含三个给定水果的数组,然后他输入:

$fruits = array (
'orange',
'banana'
);

我希望能够查看该数组并确定其大小不是 3 并在测验中给出反馈。

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

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

我想知道我是否可以做些什么来真正收紧事情,以免人们将恶意代码放入答案中。我注意到 PHP 安全模式现已绝迹,但有什么类似的吗?我基本上只需要一个 PHP 模拟器。

4

1 回答 1

2

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

于 2012-10-22T01:45:11.740 回答