php ob_flush 不能每隔一秒输出的解决方法
使用php中的on_flush,要求浏览器每隔一秒输出一个数字。
php.ini配置为版本5.3
output_buffering = off
另:查看output_buffering是否打开,可以:
例子:
$i = 3;
ob_start();
while ($i--) {
echo $i, "<br />";
ob_flush();
flush();
sleep(1);
}
ob_end_clean();
?>
问题:这段代码不能每隔一秒输出呢?
原因分析:
apache运行原理:当访问一个地址(发送请求)后,在apache服务器中启动PHP,php执行是页面级的,如果有可执行的代码:
它全部执行完后再丢给apache,apache再丢给browser显示结果。
解决方法:
如果是cli 显示结果方式又不一样,那里不一样呢?
linux cmd:
php5 test.php
由php直接执行,不经过apache,web service,即可实现:
$i = 3;
while ($i--) {
echo $i, "\n";
sleep(1);
}
ob_end_clean();
?>
您可能感兴趣的文章:
php ob_flush 不能每隔一秒输出的解决方法
php输出缓冲的小例子
php中的输出控制
剖析PHP中的输出缓冲 flush之类
php ob_flush,flush在ie中缓冲无效的解决方法
php的flush和ob_flush无效问题解决办法
php立即刷新缓存输出的方法举例
解决php中flush()不能按顺序输出的问题
深入理解php中ob_flush与flush的区别
有关php的ob_flush()与flush()使用方法