14

オンラインジャッジをしていて、ちょっとした問題に遭遇しました

私は今まで何をしてきましたか?

したがって、私の php コードはユーザー コードを受け取り、それを関数 Compile() に渡して、コードをコンパイルし、コンパイルが成功したかどうかを報告します。コードのこの部分はかなりうまく機能します。

残っているのは、コードの実行と評価です

私の問題

私の問題は、ユーザーの標準入力入力を処理する方法です。ユーザーは通常、scanf、BufferedReader などを使用して stdin から入力を取得し、これらの値は通常、キーボードを使用して取得します。これらの値をファイルに書き込んだとします。これらの値をどのように提供しますか。

私の試み

さて、いろいろな方法を探していたところ、これにたどり着きました

fopen('php://stdin', 'w') 

複数のユーザーが同時に標準入力を使用すると問題が発生するよりも、これがファイルのように機能すると私が信じている場合。

4

2 に答える 2

2

まさに、php で必要なのは exec だけです。

ただし、実行だけでなく評価も必要な場合は、実行、フィード、出力の受信、および出力が正しいかどうかを確認するためのシェル スクリプトを作成する必要があります。セキュリティ上の脅威であるため、そのスクリプトを適切にサンドボックス化することを忘れないでください。

Execところで。戻り値である 3 番目のパラメーターも提供します。独自のリターン コードを使用して独自のシェル スクリプトを作成する限り、これは非常に便利です。

exec ('./script.sh',$output,$exit_code)

php スクリプトには、ファイルとディレクトリへのアクセス許可が必要であることに注意してください。

于 2013-11-09T00:37:06.993 に答える