PHP輸出 每隔兩1秒輸出一個數字

現在我想實現一種效果,每隔1秒輸出一個數字。(因爲PHP一般是等完全運行完之後,再一下輸出的)。

  1. for ($i=10; $i>0; $i--)  
  2. {  
  3.     echo $i.'<br />';  
  4.     ob_flush();  
  5.     flush();  
  6.     sleep(1);  
  7. }  
  8. ob_end_flush();  

上面這段代碼,可以在FF下,每隔一秒輸出一個數字:

10

隔1秒

9

隔1秒

8

... ...

... ...

 

但是在IE下面,還是一下子全部輸出來。

原來是:

一些Web服務器或瀏覽器的output_buffering默認是4069字符或者更大,即輸出內容必須達到4069字符服務器纔會flush刷新輸出緩衝,爲了確保flush有效,最好在ob_flush()函數前有以下語句:
print str_repeat(" ", 4096);

也就是:

  1. <?php  
  2. print str_repeat(" ", 4096);  
  3. for ($i=10; $i>0; $i--)  
  4. {  
  5.     echo $i.'<br />';  
  6.     ob_flush();  
  7.     flush();  
  8.     sleep(1);  
  9. }  
  10. ob_end_flush();  

這下在IE下也可以實現一個一個動態輸出了

發佈了66 篇原創文章 · 獲贊 42 · 訪問量 94萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章