PHPでの長い処理の中で単にブラウザに表示する場合、以下の様な手順で行います。
まず最初にブラウザに対する出力用バッファを最初にフラッシュをします。
その後、長時間の処理のループで echo 関数で文字列を表示した時に その都度バッファのフラッシュを行います。
プログラムの例としては以下の通りです。
<?php
// 実行時間の無制限
set_time_limit( 0 );
// 出力バッファクリア
ob_end_flush();
ob_start();
// 結果が出力される様に空白出力
echo str_repeat( ' ', 4096 );
echo("start...<br />\n");
for($i = 1; $i <= 100;$i++){
//件数表示
echo($i."件目処理...<br />\n");
ob_flush();
flush();
sleep(10);
}
echo("end...<br />");
ob_flush();
flush();
?>
PR
コメント