教程集 www.jiaochengji.com
教程集 >  脚本编程  >  php  >  正文 php ob_flush 不能每隔一秒输出的解决方法

php ob_flush 不能每隔一秒输出的解决方法

发布时间:2016-04-26   编辑:jiaochengji.com
本文介绍在php中使用ob_flush时,不能每隔一秒输出的解决方法,有遇到类似问题的朋友,可以参考学习下。

使用php中的on_flush,要求浏览器每隔一秒输出一个数字。

php.ini配置为版本5.3
 

implicit_flush = off
output_buffering = off
 

另:查看output_buffering是否打开,可以:
 

var_dump(ini_get('output_buffering'));

例子:
 

复制代码 代码示例:
<?php
$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,即可实现:
 

复制代码 代码示例:
<?php
$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()使用方法

[关闭]
~ ~