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 相关文章推荐
PhpMyAdmin出现export.php Missing parameter: what /export_type错误解决方法
Aug 09 PHP
CodeIgniter基本配置详细介绍
Nov 12 PHP
PHP中mysql_field_type()函数用法
Nov 24 PHP
Yii入门教程之Yii安装及hello world
Nov 25 PHP
PHP也能干大事之PHP中的编码解码详解
Apr 20 PHP
Yii中CArrayDataProvider和CActiveDataProvider区别实例分析
Mar 02 PHP
Zend Framework教程之Zend_Db_Table表关联实例详解
Mar 23 PHP
PHP实现的观察者模式实例
Jun 21 PHP
thinkPHP中U方法加密传递参数功能示例
May 29 PHP
yii框架结合charjs实现统计30天数据的方法
Apr 04 PHP
Mac M1安装mnmp (Mac+Nginx+MySQL+PHP) 开发环境
Mar 29 PHP
微信小程序结合ThinkPHP5授权登陆后获取手机号
Nov 23 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制作的意见反馈表源码
2007/03/11 PHP
第二章 PHP入门基础之php代码写法
2011/12/30 PHP
PHP中如何调用webservice的实例参考
2013/04/25 PHP
php错误日志简单配置方法
2016/07/11 PHP
JS运行耗时操作的延时显示方法
2010/11/19 Javascript
JavaScript 5 新增 Array 方法实现介绍
2012/02/06 Javascript
JQuery入门——事件切换之hover()方法应用介绍
2013/02/05 Javascript
javascript模拟地球旋转效果代码实例
2013/12/02 Javascript
node.js中使用q.js实现api的promise化
2014/09/17 Javascript
浅谈 javascript 事件处理
2015/01/04 Javascript
简单解析JavaScript中的__proto__属性
2016/05/10 Javascript
JavaScript_object基础入门(必看篇)
2016/06/13 Javascript
javascript 动态脚本添加的简单方法
2016/10/11 Javascript
vue引入jq插件的实例讲解
2017/09/12 Javascript
在小程序开发中使用npm的方法
2018/10/17 Javascript
vue实现图片预览组件封装与使用
2019/07/13 Javascript
详解基于element的区间选择组件校验(交易金额)
2021/01/07 Javascript
Python使用tablib生成excel文件的简单实现方法
2016/03/16 Python
Python的SQLalchemy模块连接与操作MySQL的基础示例
2016/07/11 Python
详解Numpy中的广播原则/机制
2018/09/20 Python
在python 不同时区之间的差值与转换方法
2019/01/14 Python
Python中使用遍历在列表中添加字典遇到的坑
2019/02/27 Python
使用Python开发个京东上抢口罩的小实例(仅作技术研究学习使用)
2020/03/10 Python
Python基于locals返回作用域字典
2020/10/17 Python
HTML5中使用postMessage实现Ajax跨域请求的方法
2016/04/19 HTML / CSS
Madda Fella官网:美国冒险家服装品牌
2020/01/16 全球购物
SQL Server提供的3种恢复模型都是什么? 有什么区别?
2012/05/13 面试题
杭州-飞时达软件有限公司.net笔面试
2012/04/28 面试题
房地产经营管理专业自荐信
2014/09/02 职场文书
贷款承诺书
2015/01/20 职场文书
2015年公务员工作总结
2015/04/24 职场文书
2016年校长新年寄语
2015/08/17 职场文书
Nginx缓存设置案例详解
2021/09/15 Servers
JavaScript选择器函数querySelector和querySelectorAll
2021/11/27 Javascript
MySQL学习之基础操作总结
2022/03/19 MySQL
Python matplotlib绘制条形统计图 处理多个实验多组观测值
2022/04/21 Python