PHP:

  1. <?php
  2. for ( $i = 0 ; $i < 10 ; $i ++ ) {
  3. echo $i ;
  4. sleep ( 1 ) ;
  5. }
  6. ?>

类似上面的程序如果在PHP解释器中执行,每秒会输出一个数,和想象中一样。但是如果使用浏览器来访问,情况就有所不同。在浏览器中访问时,只有在十秒之后才会一次性地显示所有结果。

可以使用ob_flush() 和flush() 来强制浏览器刷新缓存,程序改为:

PHP:

  1. <?php
  2. for ( $i = 0 ; $i < 10 ; $i ++ ) {
  3. echo $i ;
  4. ob_flush ( ) ;
  5. flush ( ) ;
  6. sleep ( 1 ) ;
  7. }
  8. ?>

再使用浏览器访问,四个浏览器中只有Firefox 即时输出了结果。这是因为不同的浏览器对缓冲的处理方式不同,Firefox在被要求强制刷新缓存时很听话,而IE需要在接收到256个字节后才会将内容即时展现在界面上,Safari 需要1024个字节,Opera 更有个性,只有在遇到HTML标签的时候才会即时输出(Safari也是如此)。

对于IE和Safari,可以在输出结果之前先输出大于限定数目的空白字符:

PHP:

  1. <?php
  2. echo str_repeat ( " " , 1024 ) ;
  3. for ( $i = 0 ; $i < 10 ; $i ++ ) {
  4. echo $i ;
  5. ob_flush ( ) ;
  6. flush ( ) ;
  7. sleep ( 1 ) ;
  8. }
  9. ?>

而对于Opera、Safari遇到HTML标签后才会即时输出的问题,由于一般我们不会只往浏览器中输出纯文本内容,故可以不作考虑。对于上面的程序,可以在输出结果中加入HTML标签来达到目的:

PHP:

  1. <?php
  2. echo str_repeat ( " " , 1024 ) ;
  3. for ( $i = 0 ; $i < 10 ; $i ++ ) {
  4. echo $i . "<br>" ;
  5. ob_flush ( ) ;
  6. flush ( ) ;
  7. sleep ( 1 ) ;
  8. }
  9. ?>

PHP即时输出结果到浏览器相关推荐

  1. php向浏览器输出,使PHP即时输出结果到浏览器

    使PHP即时输出结果到浏览器 PHP: for ( $i = 0 ; $i < 10 ; $i ++ ) { echo $i ; sleep ( 1 ) ; } ?> 类似上面的程序如果在 ...

  2. php图书信息浏览器,使PHP即时输出结果到浏览器

    for ( $i = 0 ; $i < 10 ; $i++ ) { echo $i ; sleep(1); } 类似上面的程序如果在PHP解释器中执行,每秒会输出一个数,和想象中一样.但是如果使 ...

  3. php内容缓存输出,PHP使用缓存即时输出内容(output buffering)的方法

    PHP使用缓存即时输出内容(output buffering)的方法 PHP使用缓存即时输出内容(output buffering)的方法.分享给大家供大家参考.具体如下: $buffer = ini ...

  4. php 即时讯代码,PHP实现即时输出、实时输出内容方法

    PHP实现即时输出.实时输出内容方法 发布于 2015-11-24 07:55:46 | 179 次阅读 | 评论: 0 | 来源: 网友投递 PHP开源脚本语言PHP(外文名: Hypertext ...

  5. 利用51单片机统计脉冲个数,即时输出显示

    ;利用51单片机设计一个计数显示系统,要求8个数码管显示T1输入脉冲的个数. ;最好用汇编语言,加注释,尽量别太复杂.尽量快些哈! ;悬赏分:30 | 解决时间:2011-7-20 19:15 | ; ...

  6. SocketLog-微信调试、API调试和AJAX的调试的工具,能将日志通过WebSocket输出到Chrome浏览器的console中

    说明 SocketLog适合Ajax调试和API调试, 举一个常见的场景,用SocketLog来做微信调试, 我们在做微信API开发的时候,如果API有bug,微信只提示"改公众账号暂时无法 ...

  7. JAVA输出图片到浏览器

    之前前后端联调总是想要一个API输出到浏览器展示预览(由于公司没有文件服务器),每次都需要去找, 这次我自己整一个已经验证过的实例,方便查阅. @AnonymousAccess@GetMapping( ...

  8. php 输出个人信息,PHP实现即时输出信息 | 学步园

    set_time_limit(0); 例如下面这个程序: for($i=0;$i<10;$i++){ echo $i; sleep(1); } 我需要它每秒输出一次,而不是10秒完成后再一起输出 ...

  9. PhpExcel数组输出到Excel浏览器下载

    经常是mysql查出二维数组,并且数组的带key也是有意义的,考虑到经常用,就打算弄个函数出来,方便以后用! 相对是规范的数组哈,具体可看下$data数组: 生成的excel第一行是对应的key: 直 ...

最新文章

  1. 后台开发经典书籍--mysql从入门到精通
  2. 显示lib包_【手把手教你】股市技术分析利器之TA-Lib(一)
  3. 使用msm文件创建msi
  4. 零基础学HTML5和CSS3前端开发第一课
  5. input file 选择文件后自动上传文件
  6. spring自定义生命周期的几种方法
  7. 蓝桥杯练习题:对给定整数基于斐波拉契数列构造字符串
  8. Java基础学习总结(68)——有关Java线程方面的面试题
  9. Power Designer的4种模型文件
  10. [原创]Linux实现服务延迟启动
  11. 科技圈晒开工福利!小米最直接,腾讯最传统,阿里最豪气,你们家的呢?
  12. 载入Haskell的函数
  13. Java获取网络视频封面图片
  14. java mencoder_mencoder java linux
  15. 三星6818芯片火焰报警器驱动的编写
  16. 2021年陕西省安全员C证考试内容及陕西省安全员C证考试资料
  17. 全球与中国远程监控(M&C)系统市场深度研究分析报告
  18. FortiGate防火墙GRE隧道监控
  19. 【模电】0016 线性稳压电源的几个实用电路
  20. HZNU2509 曲院风荷——折半搜索

热门文章

  1. 封装的概念---(Java版)
  2. OMP 设置线程的3种方法
  3. python希腊字母怎么生成_#python sympy怎样把狄克拉函数定义出来#
  4. 辛烷值预测数据集说明
  5. 二十年三万公里,线上跑完中国陆地国境线
  6. 第7届全国大学生GIS应用技能大赛试题
  7. C52单片机(AT89C52)—流水灯
  8. 港股暴跌719点 成交额超过2000亿港元
  9. 【实验报告】实验五 会员管理系统的设计开发1
  10. composer 升级后,Class ‘Facade\Ignition\IgnitionServiceProvider‘ not found