0
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

[PHP]スクリプト実行中に途中経過を確認する

Posted at

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.'秒経過しました';
}

あまりにも処理が重いと、ちゃんと動いているのか不安になったりするものですが、処理が終了するまでに途中経過をチェックしたい時に役立ちそうですね。

0
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?