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

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

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

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

测试代码如下:

for($i=0;$i<5;$i++){  
echo '
abc___'.$i;
ob_flush();
flush();
sleep(1);
}
ob_end_flush();
?>

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

分享到:


------解决方案--------------------
我又回来了,试试

echo str_pad('',4096);

set_time_limit(50);
for($i=0;$i<=5;$i++){
echo $i.'
';
ob_flush();
flush();
sleep(1);
}
?>

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

人气教程排行