PHP 中的輸出刷新:在處理過程中顯示即時日誌
在PHP 中,通常需要將輸出作為腳本顯示到用戶的瀏覽器進程,而不是等待整個腳本完成。這對於即時顯示日誌或進度更新非常有用。但是,預設情況下,PHP 會緩衝輸出,這表示直到腳本結束才將其傳送到客戶端。
'ob_flush()' 夠了嗎?
A每次 echo 呼叫後刷新輸出的常見方法是使用 ob_flush() 函數。然而,這僅部分解決了問題。雖然它確實刷新了輸出緩衝區,但它實際上不會將資料傳送到客戶端。
PHP 或 Apache 故障?調查問題
如果 ob_flush() 不起作用,則可能是 PHP 配置或 Apache 設定出現問題。要檢查 PHP 的配置,請執行以下命令:
php -i | grep output_buffering
這應該會顯示輸出緩衝是否啟用以及緩衝區的大小。如果停用輸出緩衝,則不是問題的原因。
終極解決方案
此問題的最終解決方案是將輸出緩衝區大小設為0 . 這告訴PHP 立即將輸出發送到客戶端而不進行緩衝。
ini_set('output_buffering', 0);
最終想法
透過將輸出緩衝區大小設為0,您可以確保每次echo 呼叫後刷新輸出,從而允許使用者即時查看您的日誌或進度更新。
以上是如何在PHP中實現即時日誌的即時輸出刷新?的詳細內容。更多資訊請關注PHP中文網其他相關文章!