sleep()函式一般用在暫停上,但是乙個php一旦有了sleep,其他的輸出(print,echo)就都要等待sleep()函式的完成,這是因為緩衝區,這裡有詳細解釋
在這裡不贅述,而如果要實現先輸出再等待再輸出,則用到了ob_flush()和flush();
在沒有開啟快取時,指令碼輸出的內容都在伺服器端處於等待輸出的狀態 ,flush()可以將等待輸出的內容立即傳送到客戶端。
開啟快取後,指令碼輸出的內容存入了輸出快取中 ,這時沒有處於等待輸出狀態的內容,你直接使用flush()不會向客戶端發出任何內容。而 ob_flush()的作用就是將本來存在輸出快取中的內容取出來,設定為等待輸出狀態,但不會直接傳送到客戶端 ,這時你就需要先使用 ob_flush()再使用flush(),客戶端才能立即獲得指令碼的輸出。
所以**是這樣的
<?php
echo date(『h:i:s『).『
『; ob_flush();
flush();
sleep(5);
echo date(『h:i:s『);
?>
原文 關於php關閉輸出快取,實現即時輸出
php輸出預設所有的輸出放到最後一起輸出,如果要實現即時輸出則需要關閉輸出快取,在apache下用到的方法是 ob end flush 關閉快取 ob implicit flush true 每次快取即時輸出相當於每次輸出後呼叫flush 需要注意的是每次輸出如果用ajax呼叫需要加乙個休眠時間,經...
PHP實現即時輸出 實時輸出內容方法
老生長談了。純備忘 對於執行時間較長的php程式來說可能都需要即時輸出內容來檢視運 況。複製 程式設計客棧 如下 header content type text html charset utf 8 設定執行時間不限時 set time limit 0 清除並關閉緩衝,輸出到瀏覽器之前使用這個函式...
PHP實現實時輸出
這個問題是在本地的環境中發現的。指令碼輸出的內容要等全部執行完畢後才會輸出,而sae是實時輸出的,避免了長時間等待。網上摘錄,純筆記。header content type text html charset utf 8 設定執行時間不限時 set time limit 0 清除並關閉緩衝,輸出到瀏...