PHP實現 輸出 sleep 輸出

2021-09-24 17:58:46 字數 566 閱讀 3291

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 清除並關閉緩衝,輸出到瀏...