/**

* Author:RDP

* My mail:abel1314520@gmail.com

* My blog:

blog.teamhaka.com/

*/

类似于一些开源系统在安装时,会在页面无刷新的输出实时安装状态一样的效果。

实际上是利用不等系统缓存达到一定字节就把已输出的内容交给客户端的原理。(一般为了输出效率,系统会在输出内容积累到一定容量时,再一齐交付给客户端的)

下例在linux服务器和windows服务器上、以及ff5.0和ie8上测试通过无问题

$text = <<< EOM

《送别》

长亭外

古道边

芳草碧连天

晚风拂柳笛声残

夕阳山外山

天之涯

地之角

知交半零落

一壶浊酒尽余欢

今宵别梦寒

EOM;

header( 'Content-Type: text/html;charset=utf-8' );//header必须! 有些浏览器可能会在接收html标记的开头之前缓存内容 比如对FF5.0就是如此

$space = str_repeat(" ",4096);//输出4096个空格

//1 一些版本的 Microsoft Internet Explorer 只有当接受到的256个字节以后才开始显示该页面,所以必须发送一些额外的空格来让这些浏览器显示页面内容。

//2 一些Web服务器的output_buffering默认是4069字符或者更大,即输出内容必须达到4069字符服务器才会flush刷新输出缓冲,为了确保flush有效,最好在ob_flush()函数前有此填充处理

$textArray = explode("\n",$text);

foreach($textArray as $contents){

echo $contents.'';

if(connection_aborted() ){

/* 检查客户端是否已经断开 */

exit;

}

echo $space;//填充

ob_flush();//开启缓存的情况下,脚本输出的内容存入了输出缓存中 ,这时没有处于等待输出状态的内容,你直接使用flush()不会向客户端发出任何内容。而 ob_flush()的作用就是将本来存在于输出缓存中的内容取出来,设置为等待输出状态,但不会直接发送到客户端 ,这时你就需要先使用 ob_flush()再使用flush(),客户端才能立即获得脚本的输出

flush();//刷新PHP程序的缓冲 将当前为止程序的所有输出发送到用户的浏览器

sleep(1);

}

echo 'ok';

php在页面输出,【Php】一个在页面缓缓输出效果的例子相关推荐

  1. HTML页面引入另一个HTML页面,比如各个页面引入通用的网站头部、尾部、导航栏

    1. 使用HTML的link标签import另一个HTML页面 1.1 在HTML页面的<head>标签内使用<link>标签引入另一个HTML页面("centerH ...

  2. 一个html5页面,html5做一个黑板报页面

    html5做一个黑板报页面 我们结合移动设备(手机和平板电脑)的特性,介绍HTML5中新增的语义化标签元素,以及在移动Web浏览器下Web页面布局的知识及例子. 在HTML5标准添加的新元素中,用于常 ...

  3. 我php第一个页面,PHP 第一个 PHP 页面 - 第一个 PHP 页面 - phpStudy

    第一个 PHP 页面 在 web 服务器根目录(DOCUMENT_ROOT)下建立一个文件名为 hello.php,然后完成如下内容: Example #1 第一个 PHP 脚本:hello.php ...

  4. 一个JSP页面引入另一个JSP页面

    JSP文件中引入另一个JSP JSP include 指令 JSP include 动作 静态导入与动态导入 1.什么是静态导入 2.什么是动态导入 总结 指令与动作: 静态导入和动态导入区别 附:当 ...

  5. vue 同级页面调用方法_【Vue】一个vue页面调用另一个vue页面中的方法

    想仿着 vue-material 的 Demo & Document 页面的效果写一个小例子. 遇到问题的地方是: 如上图红色圈出的地方,点击 button 按钮时,无法执行 toggle() ...

  6. Vue.js如何在一个页面调用另一个同级页面的方法

    实际开发过程中,当前组件调用完方法之后,也许会调取同一级组件中的方法,本人暂时想到两种办法: 1. vm.$on(event,callback) 新建一个工具函数util.js,代码如下: impor ...

  7. 一个Html页面给另一个html页面传值(或B.html页面调用A.html的参数)

    自己项目中需要用到,很多朋友已经解决了这个问题,有好几种方法,但是我急用,就用了window.open方法先总结一个自己立马上手的方法,等周末或中间有空把其他方法也总结一下,主要希望自己以后再用到的时 ...

  8. CSS页面优化构建一个注册页面

    一.效果图 二.内容分析 1.首先是给整个页面插入一张背景图:在<head></head>标签中写一个<style></style>标签,用body{} ...

  9. 简单的投票页面,只有一个html页面

    帮鸟写了个最简单的投票页面,他要求最简单,所以界面就写的很简单,也没有什么大的功能. 关于html的代码就不注释了,我比较喜欢这段JS代码,所以就注释一下JS代码. 代码如下: <!DOCTYP ...

  10. html页面引入另一个html页面

    微信小程序开发交流qq群   173683895 正文: 上源码: <!DOCTYPE html> <html><head><meta charset=&qu ...

最新文章

  1. 无主键的Hibernate配置
  2. C#-Home / 详解Asp.Net Sql数据库连接字符串
  3. 金融贷款逾期的模型构建3——模型评估
  4. Window7+vs2008+QT环境搭建
  5. Java—Queue队列详解(Deque/PriorityQueue/Deque/ArrayDeque/LinkedList)
  6. python极简应用_30个Python常用极简代码,拿走就用
  7. FPGA、DSP、ARM能力值对比
  8. 【vim入门笔记】基本操作与插件安装
  9. mysql 打开慢查询日志
  10. can't connect local MySql Server though socket /tmp如何解决
  11. javaweb使用quartz
  12. parallels恢复linux密码,在Parallels Desktop中忘记Windows密码怎么办 Parallels Desktop忘记Windows密码的解决方法...
  13. IT行业产品经理和项目经理的区别?
  14. 京东撸货--网上几百元的教程怎样辨别真假?不要被割韭菜
  15. 2022西式面点师(高级)操作证考试题模拟考试平台操作
  16. 随记-简单而优雅的 namedtuple
  17. 除了 P 站,还有这些站 ~~
  18. TotalCommander 之 快捷键
  19. 超融合一体机过渡到云计算
  20. 2021-07-10程序控制流程

热门文章

  1. java后台获取和js拼接展示信息
  2. 对SD卡,EMMC容量的检查
  3. 混合硬盘计算机,解决方法:混合硬盘分区技巧[图形教程]
  4. UE4的GamePlay框架概述
  5. 佳明 Venu 2 Plus评测
  6. 〖Python WEB 自动化测试实战篇⑥〗- selenium元素定位之find-elements
  7. 百度网盘快速下载小工具:PanDownload
  8. 用opencc实现Wiki中文语料从繁体转换为简体
  9. (英国剑桥大学)部署机器学习中的挑战:案例研究综述(上)中文译文 Challenges in Deploying Machine Learnings: a Survey of Case Studies
  10. m5310采用芯片 中移物联_全球NB-IoT商用网络将达60张 中国移动商用比中国电信更激进...