php使用ob_flush不能每隔一秒输出原理分析
2015-06-02 00:00
621 查看
本文实例讲述了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中isset与array_key_exists的区别实例分析
- PHP准确取得服务器IP地址的方法
- php使用GD实现颜色渐变实例
- PHP header发送各种类型文件及设置文件下载名
- 《Entity Framework 6 Recipes》中文翻译系列 (36) ------ 第六章 继承与建模高级应用之TPC继承映射
- ThinkPHP3.2 加载过程(三)
- 看php手册2015-03-19版后备注
- PHP超全局变量-$_POST
- PHPNG (next generation)
- PHP各种设计模式代码示例
- php扩展开发笔记(1)创建类的数组属性
- PHP计划任务之关闭浏览器后仍然继续执行的函数
- PHPStorm下XDebug配置
- php学习第二章:字符串处理函数(一)
- FTP服务器安装
- 总结-php
- PHPMailer使用教程(PHPMailer发送邮件实例分析)
- PHP分页类代码
- php查看mysql错误位置
- PHP运行模式