ホームページ > バックエンド開発 > PHPチュートリアル > PHP でライブ ログのリアルタイム出力フラッシュを実現するにはどうすればよいですか?

PHP でライブ ログのリアルタイム出力フラッシュを実現するにはどうすればよいですか?

DDD
リリース: 2024-12-22 14:38:11
オリジナル
241 人が閲覧しました

How to Achieve Real-Time Output Flushing in PHP for Live Logs?

PHP での出力フラッシュ: 処理中のライブ ログの表示

PHP では、スクリプトとしてユーザーのブラウザに出力を表示することが望ましいことがよくあります。スクリプト全体が完了するのを待つのではなく、プロセスを実行します。これは、ログや進行状況の更新をリアルタイムで表示する場合に役立ちます。ただし、デフォルトでは、PHP は出力をバッファリングします。つまり、スクリプトが終了するまで出力はクライアントに送信されません。

'ob_flush()' 十分ですか?

A各エコー呼び出し後に出力をフラッシュする一般的な方法は、ob_flush() 関数を使用することです。ただし、これでは問題は部分的にしか解決されません。出力バッファはフラッシュしますが、実際にはデータをクライアントに送信しません。

PHP または Apache の障害?問題の調査

ob_flush() が機能しない場合は、PHP の構成または Apache 設定のいずれかに問題がある可能性があります。 PHP の設定を確認するには、次のコマンドを実行します。

php -i | grep output_buffering
ログイン後にコピー

これにより、出力バッファリングが有効かどうかとバッファのサイズが表示されます。出力バッファリングが無効になっている場合、それが問題の原因ではありません。

究極の解決策

この問題の最終的な解決策は、出力バッファ サイズを 0 に設定することです。これは、出力をバッファリングせずにすぐにクライアントに送信するように PHP に指示します。

ini_set('output_buffering', 0);
ログイン後にコピー

Final感想

出力バッファ サイズを 0 に設定すると、各エコー呼び出し後に出力が確実にフラッシュされ、ユーザーがログを表示したり、リアルタイムで更新を進行したりできるようになります。

以上がPHP でライブ ログのリアルタイム出力フラッシュを実現するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート