php nginx 實時輸出

王道中強流發表於2019-02-16

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`);

相關文章