php使用ob_flush不能每隔一秒输出原理分析


Posted in PHP onJune 02, 2015

本文实例讲述了php使用ob_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程序设计有所帮助。

PHP 相关文章推荐
多重?l件?合查?(一)
Oct 09 PHP
一段php加密解密的代码
Jul 16 PHP
PHP简洁函数小结
Aug 12 PHP
PHP动态分页函数,PHP开发分页必备啦
Nov 07 PHP
php中serialize序列化与json性能测试的示例分析
Apr 27 PHP
解析PHP汉字转换拼音的类
Jun 18 PHP
php curl请求信息和返回信息设置代码实例
Apr 27 PHP
PHP抓取网页、解析HTML常用的方法总结
Jul 01 PHP
thinkphp实现图片上传功能
Jan 13 PHP
支持汉转拼和拼音分词的PHP中文工具类ChineseUtil
Feb 23 PHP
PHP实现的简单组词算法示例
Apr 10 PHP
PHP实现提取多维数组指定一列的方法总结
Dec 04 PHP
php获取指定范围内最接近数的方法
Jun 02 #PHP
PHP使用递归方式列出当前目录下所有文件的方法
Jun 02 #PHP
php使用socket post数据到其它web服务器的方法
Jun 02 #PHP
php自动给网址加上链接的方法
Jun 02 #PHP
php将字符串随机分割成不同长度数组的方法
Jun 01 #PHP
php正则preg_replace_callback函数用法实例
Jun 01 #PHP
php实现读取和写入tab分割的文件
Jun 01 #PHP
You might like
一个经典的PHP验证码类分享
2014/11/18 PHP
php远程下载类分享
2016/04/13 PHP
php简单构造json多维数组的方法示例
2017/06/08 PHP
PHP实现微信小程序人脸识别刷脸登录功能
2018/05/24 PHP
如何解决PHP获取不到SESSION信息之一般情况
2019/10/10 PHP
解决windows上php xdebug 无法调试的问题
2020/02/19 PHP
一个js拖拽的效果类和dom-drag.js浅析
2010/07/17 Javascript
JS对象与JSON格式数据相互转换
2012/02/20 Javascript
chrome浏览器当表单自动填充时如何去除浏览器自动添加的默认样式
2015/10/09 Javascript
jQuery实现分隔条左右拖动功能
2015/11/21 Javascript
BootStrap扔进Django里的方法详解
2016/05/13 Javascript
js获取Get值的方法
2016/09/29 Javascript
Angular和百度地图的结合实例代码
2016/10/19 Javascript
微信小程序 获取当前地理位置和经纬度实例代码
2016/12/05 Javascript
利用JS轻松实现获取表单数据
2016/12/06 Javascript
图片上传之FileAPI与NodeJs
2017/01/24 NodeJs
BootStrap表单控件之文本域textarea
2017/05/23 Javascript
JavaScript反弹动画效果的实现代码
2017/07/13 Javascript
取消Bootstrap的dropdown-menu点击默认关闭事件方法
2018/08/10 Javascript
详解JavaScript事件循环机制
2018/09/07 Javascript
详解vue-cli 3.0 build包太大导致首屏过长的解决方案
2018/11/10 Javascript
详解服务端预渲染之Nuxt(介绍篇)
2019/04/07 Javascript
Vue 实现前端权限控制的示例代码
2019/07/09 Javascript
vue递归获取父元素的元素实例
2020/08/07 Javascript
[02:04]2014DOTA2国际邀请赛 BBC小组赛第三天总结
2014/07/12 DOTA
opencv 阈值分割的具体使用
2020/07/08 Python
python快速安装OpenCV的步骤记录
2021/02/22 Python
利用 CSS3 实现的无缝轮播功能代码
2017/09/25 HTML / CSS
八年级生物教学反思
2014/01/22 职场文书
自我评价的范文
2014/02/02 职场文书
国际贸易专业个人职业生涯规划
2014/02/15 职场文书
2014年残联工作总结
2014/11/21 职场文书
婚礼庆典答谢词
2015/01/20 职场文书
2015年世界无车日活动总结
2015/03/23 职场文书
课程设计感想范文
2015/08/11 职场文书
Mysql如何查看是否使用到索引
2022/12/24 MySQL