一般情況下,php都是將整個頁面全部執行完成後,才會把要輸出的內容傳送回客戶端。
for ($i = 0; $i < 10; $i++)
這段**會在十秒後輸出「-12345678910」,
如果要實現每秒實時輸出一位可用以下兩種方式:
設定執行時間不限時
set_time_limit(0);
清除並關閉緩衝,輸出到瀏覽器之前使用這個函式。
ob_end_clean();
控制隱式緩衝瀉出,預設off,開啟時,對每個 print/echo 或者輸出命令的結果都傳送到瀏覽器。
ob_implicit_flush(1);
<?php
ob_end_clean();
ob_implicit_flush(1);
for ($i=0; $i < 10 ; $i++)
ob_*系列函式, 是操作php本身的輸出緩衝區.
ob_flush()
flush, 嚴格來講, 這個只有在php做為apache的module(handler或者filter)安裝的時候, 才有實際作用.
它是重新整理webserver(可以認為特指apache)的緩衝區.
前者是把資料從php的緩衝中釋放出來,後者是把不在緩衝中的或者說是被釋放出來的資料傳送到瀏覽器。
flush()
for ($i=0; $i < 10 ; $i++)
參考:
深入理解ob_flush和flush的區別
PHP實現即時輸出 實時輸出內容方法
老生長談了。純備忘 對於執行時間較長的php程式來說可能都需要即時輸出內容來檢視運 況。複製 程式設計客棧 如下 header content type text html charset utf 8 設定執行時間不限時 set time limit 0 清除並關閉緩衝,輸出到瀏覽器之前使用這個函式...
php即時 重新整理快取 輸出內容
通常的情況下用php輸出內容會先快取,到最後全部輸出.如果有乙個多步的耗時操作,所有的結果都要等到頁面執行完後才能看到.中間漫長的過程只有等待.能不能立即都看到每步的結果呢 ob flush 是重新整理php自身的緩衝區。flush 只有在php做為apache的module handler或者fi...
PHP實時輸出
老生長談了。純備忘 對於執行時間較長的php程式來說可能都需要即時輸出內容來檢視運 況。header content type text html charset utf 8 設定執行時間不限時 set time limit 0 清除並關閉緩衝,輸出到瀏覽器之前使用這個函式。ob end clean...