`

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的输出控制函数在CAI中的应用.pdf

    "PHP 输出控制函数在 CAI 中的应用" PHP 输出控制函数是指在 PHP 编程语言中用于控制输出的函数,这些函数可以控制输出的格式、内容和样式。输出控制函数在计算机辅助教学(CAI)中的应用非常广泛,能够提高教学的...

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

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

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

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

    php输出掌握的学习笔记_.docx

    ### PHP输出控制学习笔记 #### 一、简介与应用场景 PHP 的输出控制功能主要用于管理和缓存脚本的输出。在 PHP 脚本执行过程中,可能会遇到需要在发送 HTTP 头信息(例如通过 `header()` 或 `setcookie()` 函数)...

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

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

    如何实现PHP网站页面静态化,以提高网站性能访问速度.zip

    三、方法2:使用PHP输出控制函数(Output Control)生成静态页面 输出控制函数允许我们捕获PHP脚本的输出,然后保存为文件。常见的输出控制函数有`ob_start()`、`ob_get_contents()`和`ob_end_clean()`等。流程如下...

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

    PHP4 新函数集锦——输出信息控制函数 PHP4 新函数集锦——输出信息控制函数是 PHP4 中的一组新的函数集锦,旨在提供更好的输出信息控制功能。这些函数可以帮助开发者更好地控制脚本的输出信息,使其更加灵活和可靠...

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

    综合来看,对PHP输出进行缓存并压缩动态页面涉及了多方面的技术,包括输出控制、HTTP头部处理、内容压缩算法等。合理运用这些技术,对于提高网站性能、改善用户体验具有重要的意义。在实际开发中,应根据具体应用...

    php页面缓存方法小结_.docx

    首先,`ob`系列函数是PHP输出控制函数,用于处理页面生成过程中的输出。`ob_start()`是页面缓存的起始标记,从这个函数调用后,所有输出的内容都将被保存在内存中,而不是立即发送到浏览器。`ob_get_contents()`可以...

    PHP格式化输出函数

    ### PHP格式化输出函数:深入理解与应用 在PHP编程中,格式化输出函数是开发者进行调试、数据展示以及信息处理的重要工具。本文将详细解析一个典型的PHP格式化输出函数,探讨其工作原理、参数配置及其应用场景,...

    PHP输出静态页.pdf

    这些函数主要用于操作输出缓冲区,可以方便地控制PHP脚本的输出流程。下面是一个简单的示例,展示了如何使用`ob_start()`、`ob_get_contents()`等函数生成静态页面: ```php &lt;?php ob_start(); echo "Hello World!...

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

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

    解决UTF-8格式PHP页面输出空行的简便方法

    通过优化代码结构、利用PHP的输出控制函数和调整服务器配置,可以有效地避免这种问题,提高页面的显示质量。在实践中,开发者应该养成良好的编程习惯,避免在代码中留有不必要的空白,从而提高代码的可读性和性能。

    php中 ob_start等函数截取标准输出的方法

    8. 深入理解PHP输出控制函数 为了更加灵活地控制输出内容,PHP还提供了ob_implicit_flush()来控制输出缓冲的行为,ob_flush()来刷新输出缓冲区的内容到下一个输出缓冲区或输出目的地,以及ob_get_level()来获取当前...

    PHP中几种输出函数的区别

    在PHP编程中,输出函数是我们在日常开发中...在进行复杂数据类型的调试或需要精确控制输出格式时,选择`print_r`、`var_dump`、`printf`和`sprintf`会更加合适。而在追求效率和简洁性时,`echo`和`print`是更好的选择。

    php输出掌握的学习笔记__1.docx

    PHP 输出掌握的学习笔记主要涉及如何使用PHP的输出控制函数,如`ob_start()`,`ob_get_contents()`,`ob_end_clean()`等,以管理和处理脚本的输出内容。这些函数在处理HTTP头信息、错误处理、内容缓存等方面非常有用...

    ASP/PHP语言九九乘法表程序实例-表格输出带CSS样式

    这段代码中,外层循环控制行数,内层循环控制列数,通过Response.Write()函数将乘法表的内容写入HTML。CSS样式用于美化表格,包括设置边框、内边距和合并单元格。 接下来,我们来看PHP的实现。PHP是一种开放源代码...

    php.zip_php控制led

    1. **硬件接口**:首先,你需要一个能与PHP通信的硬件接口,比如GPIO(通用输入/输出)接口,或者通过USB或串口连接的特定LED控制器。例如,对于树莓派这样的单板计算机,你可以利用其GPIO引脚直接控制LED,或者使用...

Global site tag (gtag.js) - Google Analytics