私は、PHPに関するユーザーの知識をテストするアプリケーションに取り組んでいます。ユーザーがコードを入力して送信すると、アプリケーションがエラーをチェックします。これには、解析エラーと実行時エラーだけでなく、質問への応答の適切性も含まれます。
これを行うために私が考えることができる最善の方法は、ユーザーのコードでeval()を実行し、結果を確認することです。つまり、ユーザーが3つの果物の配列を作成するように求められ、次のように入力した場合です。
$fruits = array (
'orange',
'banana'
);
その配列を見て、そのサイズが3ではないことを確認し、クイズでそのフィードバックを提供できるようにしたいと思います。
これは非常に単純な例ですが、一般的な考え方です。
言うまでもなく、フォームで任意のPHPコードを受け入れ、その上でeval()を無条件に実行するという考えは純粋な自殺ですが、テキストに対して大量の正規表現を実行してその有効性を確認するよりもはるかに理にかなっているようです。それは不完全な解決策になります。
人々が悪意のあるコードを答えに入れないように、本当に物事を引き締めるために私にできることがあるかどうか疑問に思います。PHPのセーフモードが消滅していることに気づきましたが、似たようなものはありますか?基本的に必要なのはPHPエミュレーターだけです。