0

私は次のPHPコードを持っています:

shell_exec("(traceroute odesk.com > trace.txt;echo 'traceIsDone'>>trace.txt) &");

この行は終了するのに50秒かかり、pingで機能し、ターミナルウィンドウで行を実行すると、すぐに戻ります。

(traceroute odesk.com > trace.txt;echo 'traceIsDone'>>trace.txt) &

そのコマンドを実行し、PHPを次の行に移動させた直後にどうすればよいですか?では、shell_execコマンドが終了するのを待っていませんか?

4

1 に答える 1

2

使用する必要がありますpopen()

commandで指定されたコマンドをフォークして実行されるプロセスへのパイプを開きます。

コマンドをフォークすると表示されます。つまり、メインスレッドをブロックしないように、新しいスレッドでコマンドを開始します。したがって、それを使用したいと思います。

、、およびを使用して、fopen()(よく知っている場合は)ほぼ同じように使用できます。fgets()fgetss()fwrite()

PHPマニュアルのpopen()

于 2012-11-06T08:10:25.017 に答える