7

PHPで実行したいこのシェルプログラムがあります。問題は、時間がかかる可能性があることです。その時点で、ユーザーのブラウザーをリアルタイムで更新する必要があります。

それを行うには popen() を使用する必要があるかもしれないと読みましたが、私は一種の (わかりました、私は本当に:P) PHP初心者であり、どうすればそれができるのかわかりません。

助けていただければ幸いです!

4

5 に答える 5

17
if( ($fp = popen("your command", "r")) ) {
    while( !feof($fp) ){
        echo fread($fp, 1024);
        flush(); // you have to flush buffer
    }
    fclose($fp);
}
于 2011-12-03T20:30:43.270 に答える
3

汚れやすいオプションがあります

`yourcommand 1>&2`;

stdout を stderr にリダイレクトします。

于 2016-09-12T12:03:39.960 に答える
2

次の 2 つの動作が可能です。

  1. 非ブロック: フラッシュの間に何か他のことをする必要があります (@GameBit はその方法を示しています)。

  2. 呼び出されたコマンドが終了するまで待機するブロックを使用すると、この場合はパススルー関数が表示されます

于 2011-12-03T20:57:22.330 に答える