JavaScriptを有効にしてください

【PHP】ob_flushを使用して1秒毎に時刻を表示する方法

 ·  ☕ 2 分で読めます

【PHP】ob_flushを使用して1秒毎に時刻を表示する方法

PHP で ob_flush を使用して1秒毎に時刻を表示する方法。
この方法は、ウェブページ上でリアルタイムな情報を表示する際に役立ちます。

サンプルコード

サンプルコードです。
1秒毎に1分間、時刻を出力します。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
<?php
// 実行時間の無制限  
set_time_limit(0);
// 出力バッファクリア  
ob_start();
for ($i = 0; $i < 60; $i++) {
    // 時刻表示
    echo date('Y/m/d H:i:s') . '\n';
    ob_flush();
    flush();
    sleep(1);
}
ob_end_flush();

関数説明

各関数の簡単な説明です。

  • ob_start
    この関数は、出力バッファリングを開始します。
    出力バッファリングを有効にすると、スクリプトから出力されるデータが一時的にバッファに保存され、特定の条件が満たされた場合や明示的にフラッシュされるまでクライアントに送信されません。
    これにより、ページの一部を先に送信するなど、より柔軟な出力制御が可能になります。
  • ob_flush
    この関数は、現在の出力バッファの内容をクライアントに送信し、バッファをクリアします。
    この関数を使用すると、スクリプトの実行中にバッファの内容を段階的にクライアントに送信できます。
  • flush
    この関数は、出力バッファをシステムにフラッシュし、実際にクライアントにデータを送信します。
    flush 関数は、ob_flush と組み合わせて使用することが一般的です。
    ob_flush で出力バッファの内容を送信した後、flush を使用してシステムにフラッシュし、データをクライアントに送信します。
  • ob_end_flush
    この関数は、出力バッファリングを終了し、バッファ内の残りのデータをクライアントに送信します。
    スクリプトの最後にこの関数を呼び出すことで、バッファリングを終了し、すべてのデータがクライアントに送信されることを確認できます。

参考

共有

こぴぺたん
著者
こぴぺたん
Copy & Paste Engineer