PHP输出 每隔两1秒输出一个数字

现在我想实现一种效果,每隔1秒输出一个数字。(因为PHP一般是等完全运行完之后,再一下输出的)。

[php]  view plain copy print ?
  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);

也就是:

[php]  view plain copy print ?
  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下也可以实现一个一个动态输出了

你可能感兴趣的:(PHP,浏览器,服务器,IE,web服务,output)