PHPスクリプトを実行する際、処理が全て終わった後に結果がページ上に表示されるのが普通ですが、処理が重く時間のかかるページで途中経過を確認したい場合には、flush関数を使い出力バッファをオフにすることにより、リアルタイムで確認することができます。
まずob_end_flush関数を呼び出し、出力のバッファリングをオフにします。
※ブラウザのバッファ対策のため、あらかじめ空白文字列を出力しておきます。
echo str_pad(' ', 4096);
ob_end_flush();
次にob_start関数を呼び出し、出力のバッファリングを有効にします。
ob_start('mb_output_handler');
以下のようなスクリプトを実行し、1秒ごとに途中経過を出力します。
for ($i = 1; $i <= 10; $i++) {
ob_flush();
flush();
sleep(1);
echo $i.'秒経過しました';
}
あまりにも処理が重いと、ちゃんと動いているのか不安になったりするものですが、処理が終了するまでに途中経過をチェックしたい時に役立ちそうですね。