实时输出如果放在js中我们可以直接使用settimeout来守时输入很方便,但是如果在php中实现起来就不能这样了,下面我来给介绍利用 ob_flush() 和 flush()函数实现即时实时输出内容。 一般情况下,PHP都是将整个页面全部执行完成后,才会把要输出的内容发送回客

实时输出如果放在js中我们可以直接使用settimeout来守时输入很方便,但是如果在php中实现起来就不能这样了,下面我来给介绍利用 ob_flush() 和 flush()函数实现即时实时输出内容。

一般情况下,PHP都是将整个页面全部执行完成后,才会把要输出的内容发送回客户端。例如有如下代码:

for($i=0;$i<10;$i++){echo $i;sleep(1);}

这段代码会在10秒钟后一次性输出“0123456789”。

对于运行时间较长的PHP程序来说可能都需要即时输出内容来查看运行情况。

#设置执行时间不限时

set_time_limit(0);

#清除并关闭缓冲,输出到浏览器之前使用这个函数

ob_end_clean();

#控制隐式缓冲泻出,默认off,打开时,对每个 print/echo 或者输出命令的结果都发送到浏览器

ob_implicit_flush(1);

这就用到了PHP的输出控制函数ob_flush()和flush()。我们把代码修改成下面这样:

$str="Hello world";echo $str.str_repeat(' ',256);ob_flush();flush();sleep(10);echo $str;

这段代码则会马上在屏幕上打印 Hello world。关键就在于第2和第3行调用的两个函数 ob_flush() 和 flush()。这两个函数得一起使用才能保证页面马上输出Hello world。其中str_repeat(' ', 256)则是为了解决某些浏览器必须在接收到256个字符后才会显示内容。

对上面函数升级

php

error_reporting(0);set_time_limit(0);$buffer=ini_get('output_buffering');echo str_repeat(' ',$buffer+1);ob_end_flush();for($i=1;$i<100;$i++){echo"$i

";sleep(1);flush();}?>

这样,页面就会每一秒输出一个数字。

我们可以很方便的使用PHP的输出控制来实现页面执行进度的显示。不过,由于PHP页面有执行时间限制,而且长时间执行一个页面会对服务器造成一定的压力。

文章摘自:php实时输出内容

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

php输出内容到页面,php实时输出内容相关推荐

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

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

  2. php 输出内容到表格,phpexcel 输出表格到页面(在线预览表格),导出excel

    php导出excel我们经常采用phpexcel方便,可是在开发过程中,没修过一次就点击下载一个excel文件着实麻烦,而且还不容易调试错误.其实phpexcel 还可以输出表格到页面,方便调试 实例 ...

  3. PHP执行耗时脚本实时输出内容

    我们有时候会有这样一个需求,当执行耗时脚本时,会执行完这个脚本才会输出数据,如果没有处理完,它会将输出到页面的内容缓存到内存中,等处理完后才执行,这里,我们需要实时输出. flush - 刷新输出缓冲 ...

  4. php获取页面a标签内容_AKCMS常用标签代码整理

    轻量级的CMS我觉得AKCMS算是小而强悍的,作者可以算是个极客,代码.功能精简,安全却挺到位,以至于让很多人无法很快使用他的网站程序.也有可能作者精力有限,没有更进一步完善这套系统,现在官网都仅仅是 ...

  5. java二维数组从键盘更改_互换二维数组的行列。要求数组的行数、列数以及各元素均从键盘输入;输出互换前数组内容和互换后数组内容。(要求循环输入进行测试)Java...

    1. 互换二维数组的行列.要求数组的行数.列数以及各元素均从键盘输入:输出互换前数组内容和互换后数组内容.(要求循环输入进行测试) package com.mingrisoft; import jav ...

  6. web前段学习day_01:HTML(学习如何搭建页面结构和内容):文本标签、列表标签、图片标签、超链接、表格、表单表单、分区标签、实体引用

    学习如何构造页面结构和内容 安装HBuilderX 一.HTML 创建第一个HTML页面 写完html后如何测试 写在body中的常见标签有哪些? 注释快捷键 Ctrl+Shift+/ 1.文本相关标 ...

  7. CSS3之利用选择器和content属性在页面中插入内容

    CSS3之使用选择器在页面中插入内容     1. 使用选择器来插入内容:例, h2:before{ content:'COLUMN'; color:white: background-color:o ...

  8. 没有动任何配置文件,今天就出现了修改的JSP内容在页面不体现。依然是老的页面内容...

    2019独角兽企业重金招聘Python工程师标准>>> 现象: 没有动任何配置文件,今天就出现了修改的JSP内容在页面不体现.依然是老的页面内容 问题分析: 既然可以用过,所以系统应 ...

  9. php 实现类,php 获取页面中指定内容的实现类

    本文为大家下使用php如何获取页面中的指定内容,而且以封装成类,需要的朋友可以参考下本文 功能: 1.获取内容中的url,email,image. 2.替换内容中的url,email,image. u ...

最新文章

  1. 企业级微服务框架落地
  2. MySql数据备份与恢复
  3. jset编写测试vue代码_详解使用jest对vue项目进行单元测试
  4. 机器学习——KNN实现
  5. 将Qt工程文件转成VC工程文件的小工具
  6. nginx proxy_pass末尾神奇的/
  7. 20220129---CTF刷题---WEB--代码审计
  8. r vector 4 elements_Vector类与Enumeration接口
  9. Java机器学习,第2部分
  10. 系统新模块增加需要哪些步骤_防锈高效型干式地暖模块解决了装修施工配合的哪些难点?...
  11. 【华为云动态】华为云开放日发布云专家激励计划,要将开发者“宠”上天
  12. Shiro第四篇【Shiro与Spring整合、快速入门、Shiro过滤器、登陆认证】
  13. Windows10使用Anaconda安装TensorFlow-GPU
  14. 【Data guard】Failover切换
  15. Sudo: unable to initialize policy plugin 解决方法
  16. android开发根据分辨率设置高度,【android】根据屏幕分辨率设置底栏高度
  17. 0517 libdroid MyDriver2-397 easy_go攻防世界
  18. AVR单片机计算器C语言源程序,基于AVR单片机的简易计算器设计
  19. 【转】IT行业都有哪些岗位?
  20. Drillbeach---第三章 Drillbench Hydraulics User Guide

热门文章

  1. PHP Checkbox获取选中项与
  2. Bruce的程序员语录
  3. 声笔码和声笔数码单字效率分析
  4. 操作系统简介-计算机历史、进程(一)
  5. git detached head
  6. linux之pkill命令
  7. linux 上查找包含特定文本的所有文件
  8. java正则学习笔记
  9. c++编译器对类的处理
  10. AD Keepout layer在3D视图中显示过孔、穿层