当前位置:Gxlcms > PHP教程 > flush()函数无效?不能实时刷新输出,怎么解决呢

flush()函数无效?不能实时刷新输出,怎么解决呢

时间:2021-07-01 10:21:17 帮助过:8人阅读

flush()函数无效?不能实时刷新输出,如何解决呢?
本帖最后由 zhoumengkang 于 2013-05-28 13:46:14 编辑

测试代码如下:
  1. <!--?php<br /-->
  2. for($i=0;$i<5;$i++){ <br>
  3. echo '<br>abc___'.$i;<br>
  4. ob_flush();<br>
  5. flush();<br>
  6. sleep(1);<br>
  7. }<br>
  8. ob_end_flush();<br>
  9. ?>

理论上应该是1秒出来一条是吧?但是我测试的结果是5秒之后才一起出来。
网上查了下有这样说的“个别web服务器程序,特别是Win32下的web服务器程序,在发送结果到浏览器之前,仍然会缓存脚本的输出,直到程序结束为止。 ”我这个是64位的windows的本地xampp的集成环境。

分享到:


------解决方案--------------------
我又回来了,试试
  1. <!--?php<br /-->
  2. echo str_pad('',4096);<br>
  3. <br>
  4. set_time_limit(50);<br>
  5. for($i=0;$i<=5;$i++){<br>
  6. echo $i.'<br>';<br>
  7. ob_flush();<br>
  8. flush(); <br>
  9. sleep(1);<br>
  10. }<br>
  11. ?>

这两天出这个问题的还挺多的。
这个写法在各浏览器测试都没问题,但有童鞋说,这种做法往缓存区写垃圾,可以试试PHP抛出异常,有空研究一下再分享

人气教程排行