`

php输出控制

 
阅读更多

首先来回顾下,php输出有哪些?

php的输出有echo、print、print_r、printf、var_dump、exit、以及php文件中的html内容,还有一个特殊的函数phpinfo。总之php输出就是php文件处理的结果内容(不包括header()、setcookie()等设置的头信息)。

php输出控制,实际是指php的输出缓存控制。php4逐渐完善了输出缓存控制,能够实现输出内容的二次处理。以PHP+Apache的服务组合来说明PHP的输出控制,见下图。


 
php默认配置是未开启输出缓存的,输出内容即时输出到apache缓存中,php脚本执行结束后,apache缓存中的内容才会发送到客户端(浏览器)。很多资料讲:“php未开启输出缓存时,php的输出会即时输出到客户端”,这种描述不够准确,以至于很多人对下面案例产生不理解。

 

服务端环境及配置:

  • PHP5.3.x + Apache2.2.x
  • PHP作为Apache模块安装
  • PHP配置 output_buffering = Off

PHP应用程序:

<?php
echo str_repeat("abcdefg", 200);
sleep(5);
echo "</br>end";
?>

 

浏览器访问时,并不能即时看到200个abcdefg的输出串,而是在脚本执行完后,浏览器界面将200个abcdefg和</br>end一起输出。这就说明了:此时,php的输出在apache的缓存中,脚本执行结束后,apache将缓存中的数据输出到浏览器。

在php3的时候,php就提供了一个函数来控制apache的缓存输出,这个函数就是flush,注意,这个函数不属于php输出缓存控制函数,这个函数控制的是apache的缓存(上图粉色部分)输出。

 

php的输出缓存控制是指控制php输出到apache的过程,未开启php输出缓存时,php直接输出到apache,apache将数据缓存下来;开启php输出缓存时,php输出到自己缓存中(上图蓝色部分)。

接下来,提三个问题,帮助初学者清楚的认识php的输出缓存控制。

  1. 怎么开启php输出缓存;
  2. 开启php输出缓存了,之后怎么控制缓存中的数据输出到apache,进而输出到浏览器;
  3. 开启php输出缓存,及对php输出缓存的控制对于phper来说有什么意义。
  • 开启php缓存有两种办法:

全局开启——修改php.ini中的配置项output_buffering = On

会话开启——调用ob_start。注意,这里不要用ini_set("output_buffering",1)

 

  • php输出控制函数:

ob_flush

ob_end_flush

ob_clean

ob_end_clean

ob_get_contents

ob_get_clean

ob_get_flush

 

  • php输出缓存控制应用


未完待续……

 

 

 

 

 

 

  • 大小: 27.8 KB
分享到:
评论

相关推荐

    PHP输出控制功能在简繁体转换中的应用

    PHP作为当今流行的脚本语言之一,具有编写简便,执行速度快,扩充性好等...输出控制函数不对使用 header() 或 setcookie() 发送的文件头信息产生影响,只对那些类似于 echo()、print () 和 PHP 代码的数据块有作用。

    php输出控制函数和输出函数生成静态页面

    本文实例为大家分享了php输出控制函数和输出函数生成静态页面的具体代码,供大家参考,具体内容如下 Output Control 函数详解: flush – 刷新输出缓冲 ob_clean – 清空输出缓冲区 ob_end_clean – 清空缓冲区并...

    PHP实现即时输出、实时输出内容方法

    老生长谈了。...#控制隐式缓冲泻出,默认off,打开时,对每个 print/echo 或者输出命令的结果都发送到浏览器。 ob_implicit_flush(1); 例, 复制代码 代码如下: ob_end_clean(); ob_implicit_flush

    PHP5完全攻略

    PHP输出控制灵活,可以在HTML中嵌入PHP代码,也可以由PHP输出HTML语言,或者在命令行下执行,将结果输出到其他设备。 PHP支持模板,实现程序逻辑与用户界面分离 跨平台 与多个服务器兼容,包括Apache MicroSoft ...

    PHP的输出控制函数在CAI中的应用.pdf

    PHP的输出控制函数在CAI中的应用.pdf

    PHP4新函数集锦——输出信息控制函数.pdf

    PHP4新函数集锦——输出信息控制函数.pdf

    PHP100视频教程全集112集BT种子【PHP经典】

    PHP100视频教程47:PHP输出CSV和EXCEL两种简单的方法 PHP100视频教程48:Ajax+PHP快速上手及应用 PHP100视频教程49: Ajax+PHP打造等待进度条效果(二) PHP100视频教程50: Ajax+PHP检查用户名或邮件(三) ...

    全网最易部署,响应速度最快的ChatGPT环境 PHP版调用OpenAI接口进行问答和画图,采用Stream流模式通信

    采用stream流模式通信,一边生成一边输出,响应速度全网最快。 支持GPT-3.5-Turbo和GPT-4等各种模型(后者需要修改下默认model名称)。 支持Markdown格式文本显示,如表格、代码块。对代码进行了着色,提供了代码...

    控制PHP的输出:缓存并压缩动态页面

    在这篇文章里,我将要介绍如何使用PHP的输出控制函数来大幅加速页面载入速度。 介绍PHP的输出控制函数 PHP4中最令人满意的事是——你可以让PHP缓存所有由脚本生成的输出,在你决定把它们送出之前,浏览器方是不会...

    PHP-九九乘法表

    PHP网页代码,结合网页html写出一个九九乘法表

    PHP 输出缓存详解

    Output Control 函数可以让你自由控制脚本中数据的输出。它非常地有用,特别是对于:当你想在数据已经输出后,再输出文件头的情况。

    PHP 输出缓冲控制(Output Control)详解

    输出并没有立即送给 web server, 而是将数据写入 php buffer。php output_buffering 机制好处当然提升性能。其实 php 文件最终在浏览器上显示,走过3个缓冲阶段: php buffer=》web server buffer=》browser bu

    stm32-motor-pid从PWM输出、正交编码器测速到PID速度环、位置环、串级控制

    pid控制stm32-motor-pid从PWM输出、正交编码器测速到PID速度环、位置环、串级控制...本项目使用STM32F407VET6开发板进行实验预先阅读文章:编码器计数原理与电机测速原理——多图解析。文章:电机控制基础——定时器...

    在PHP中输出JS语句以及乱码问题的解决方案

    怎样在php中输出js语句? 示例 &lt;?php $classState=; if($state==0){ $classState=已下课;...这样在页面的其他地方,就可以直接引用php中输出的js方法了. ...把php作为html前端页面的控制脚本时,时常需

    PHP输出缓冲控制Output Control系列函数详解

    主要介绍了PHP输出缓冲控制Output Control系列函数详解,本文讲解了输出缓冲的简介、输出缓冲的作用、php.ini 中的相关配置项、Output Control 函数详解等内容,需要的朋友可以参考下

    php printf输出格式使用说明

    printf的格式控制的完整格式: % – 0 m.n l或h 格式字符 下面对组成格式说明的各项加以说明: ①%:表示格式说明的起始符号,不可缺少。 ②-:有-表示左对齐输出,如省略表示右对齐输出。 ③0:有0表示指定空位填0,...

Global site tag (gtag.js) - Google Analytics