私はファイルmove_uploaded_file
を介してファイルをアップロードしています。そのファイルはjavaプログラムのパラメータとして扱われます。 javaプログラムが実行されている間に、端末の進捗を出力します。 javaプログラムの出力は、同じことをするperlスクリプトの入力です。 私ははshell_exec関数としての私のPHPのWebサイトでそれらのすべてを実行すると、コマンドが正常に実行されているが、JavaやPerlからの出力は私のウェブサイト上に表示されていないリアルタイム出力のPHPでshellコマンドを実行しています
echo "Running java ..... ";
$output=shell_exec("java -jar abc.jar ".($_FILES['uploaded']['name']));
echo "<pre>$output</pre>";
echo "running perl .....";
$output=shell_exec("perl abc.pl outputfromjava.txt");
echo "<pre>$output</pre>";
シェル画面に印刷しています。私はjavaとperlが実行された後私のコードでページをリフレッシュしようとしたが、それはあまりにもアップロードをリフレッシュします。
出力は現在の出力が
Running Java...
Progress1 //from java output
progress2 //from java output
Running Perl....
Progress1 //from perl output
progress2 //from perl output
おかげ
私はシステムを使用する代わりに、もしくはshell_exec、それが働きました。 proc_openはシステムに対して何か特別な利点がありますか? – Ank
間違いなく!基本的にプロセスとそのfd(入出力)を完全に制御できます。つまり、コマンドが実行されている間はスクリプトは(proc_openの後に)続行され、多くのメリットが得られます。 – mvds