2

コマンド ラインまたは Web ページ (引数は $GET または $POST を使用して他の Web ページから渡されます) から呼び出すことができる PHP スクリプトがいくつかあります。

実行には時間がかかる場合があります。たとえば、5 分ほどかかります。

スクリプトには、実行中に何が起こっているかをリアルタイムで知ることができる「echo」と「print」の呼び出しが含まれています。

問題は、Web ページ モードでは、これらのエコー呼び出しは、スクリプトの実行が終了するまでブラウザーに何も出力しないことです。または、エコーの半分が 2 分後に表示され、残りが最後に表示される場合もあります。

スクリプトが「Web ページ モード」で呼び出されたときに、print()/echo() 呼び出しをリアルタイムで表示する簡単な方法はありますか?

前もって感謝します。

4

3 に答える 3

3

flush() は、ブラウザーと出力のサイズに応じて機能する場合と機能しない場合があります (参照: PHP Flush() が Chrome で機能しない)

mod_gzip が有効になっている場合、Apache は出力をバッファリングすることもできます。

最善の策は、db/session/fs にログインし、クライアント側で JS を使用して更新をポーリングすることです。

于 2013-01-29T23:27:14.663 に答える
1

ob_flush()スクリプトの実行が完了する前に出力を強制的にブラウザーに送信するために使用します。

于 2013-01-29T23:18:38.070 に答える
1

スクリプトがコンソールで正常に出力されるため、出力バッファリングを使用していないと思います。したがってflush()、出力をブラウザーに送信する必要があることを PHP に明示的に伝えるために使用します。

echo毎回またはprint短い間隔で表示される場合にフラッシュするのではなく、xxx 出力ごとにフラッシュすることをお勧めします。

于 2013-01-29T23:19:59.660 に答える