PHP 裡開啟實時輸出方法是ob_implicit_flush()
,
但它大部分情況下都不管用,
因為php.ini
配置裡output_buffering
輸出緩衝大部分是On
開啟的,
還有zlib.output_compression
也經常會被開啟,
除了 PHP 這一層,還有 Nginx 的緩衝設定proxy_buffering
,和壓縮gzip
也大都是開啟的。
為了一兩個頁面的需求,修改整個伺服器的網站配置,恐怕沒有人會做這種選擇。
這裡推薦一下簡單的方法:
set_time_limit(0);
ob_end_clean();
ob_implicit_flush();
header(`X-Accel-Buffering: no`); // 關鍵是加了這一行。
echo `現在是:`.date(`H:i:s`).`<br>`;
sleep(5);
echo `五秒後:`.date(`H:i:s`);