PHP嵌套输出缓冲代码实例

   这篇文章主要介绍了PHP嵌套输出缓冲代码实例,本文讲解嵌套使用ob系列函数的实例,需要的朋友可以参考下

  PHP的输出缓存是可以嵌套的。用ob_get_level()就可以输出嵌套级别。

  测试发现在cli和浏览器下输出结果不一样(PHP5.4)。


  手册说明如下:

  ob_get_level() will always return 0 inside a destructor.

  This happens because the garbage collection for output buffers has already done before the destructor is called

  想要正确输出也很简单:

   代码如下:

  ob_end_clean();

  echo ob_get_level(); //0

  回到正题:

   代码如下:

  ob_end_clean();

  ob_start();

  echo 'php1';//此处并不会在页面中输出

  $a = ob_get_level();

  $b = ob_get_contents();//获得缓存结果,赋予变量

  ob_clean();

  ob_start();

  echo 'php2';//此处并不会在页面中输出

  $c = ob_get_level();

  $d = ob_get_contents();//获得缓存结果,赋予变量

  ob_clean();

  ob_start();

  echo 'php3';//此处并不会在页面中输出

  $e = ob_get_level();

  $f = ob_get_contents();//获得缓存结果,赋予变量

  ob_clean();

  echo 'level:'.$a.',ouput:'.$b.'
';

  echo 'level:'.$c.',ouput:'.$d.'
';

  echo 'level:'.$e.',ouput:'.$f.'
';

  结果如下:

   代码如下:

  level:1,ouput:php1

  level:2,ouput:php2

  level:3,ouput:php3

  当然,当你关闭某个级别的缓冲,如下测试:

  代码如下:

  ob_end_clean();

  ob_start();

  echo 'php1';

  $a = ob_get_level();

  $b = ob_get_contents();

  ob_clean();

  ob_start();

  echo 'php2';

  $c = ob_get_level();

  $d = ob_get_contents();

  ob_end_clean(); //清空缓存并关闭缓存

  ob_start();

  echo 'php3';

  $e = ob_get_level();

  $f = ob_get_contents();

  ob_clean();

  echo 'level:'.$a.',ouput:'.$b.'
';

  echo 'level:'.$c.',ouput:'.$d.'
';

  echo 'level:'.$e.',ouput:'.$f.'
';

  结果如下:

  代码如下:

  level:1,ouput:php1

  level:2,ouput:php2

  level:2,ouput:php3

时间: 2024-10-14 21:44:45

PHP嵌套输出缓冲代码实例的相关文章

PHP嵌套输出缓冲代码实例_php实例

PHP的输出缓存是可以嵌套的.用ob_get_level()就可以输出嵌套级别. 测试发现在cli和浏览器下输出结果不一样(PHP5.4). 手册说明如下: ob_get_level() will always return 0 inside a destructor. This happens because the garbage collection for output buffers has already done before the destructor is called 想要

PHP输出日历表代码实例

 这篇文章主要介绍了PHP输出日历表代码实例,本文直接给出代码实例,需要的朋友可以参考下     ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 7

php 刷新输出缓冲代码

<?php教程 function throw_error($message) { $error_page = "/err/error.php"; $error_url = $error_page; $error_url .= "?REDIRECT_ERROR_NOTES=$message"; $error_url .= "&REDIRECT_URL=" . $GLOBALS["PHP_SELF"]; $error

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

概述 以前研究过PHP的输入输出缓冲,不过博客搬家以后,原来文章找不到了,今天看到一篇好文,顺便转载过来. 简介 说到输出缓冲,首先要说的是一个叫做缓冲器(buffer)的东西.举个简单的例子说明他的作用:我们在编辑一篇文档时,在我们没有保存之前,系统是不会向磁盘写入的,而是写到buffer中,当buffer写满或者执行了保存操作,才会将数据写入磁盘.对于PHP来说,每一次像 echo 这样的输出操作,同样是先写入到了 php buffer 里,在脚本执行完毕或者执行了强制输出缓存操作,数据才会

PHP输出九九乘法表代码实例

 这篇文章主要介绍了PHP输出九九乘法表代码实例,本文直接给出实现代码,需要的朋友可以参考下     ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/

Android 嵌套Fragment的使用实例代码_Android

前言   之前的文章有介绍ActivityGroup,不少人问嵌套使用的问题,同样的需求在Fragment中也存在,幸好在最新的Android support 包已经支持这一特性!这里就跳过Fragment的介绍,需要注意的是TabActivity已经被标记为弃用(deprecated). 正文  一.准备   关于最新的Android兼容包的介绍,参见官网.可以在android sdk目录下extras/android/support/v13/android-support-v13.jar找到

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

  这篇文章主要介绍了PHP输出缓冲控制Output Control系列函数详解,本文讲解了输出缓冲的简介.输出缓冲的作用.php.ini 中的相关配置项.Output Control 函数详解等内容,需要的朋友可以参考下 概述 以前研究过PHP的输入输出缓冲,不过博客搬家以后,原来文章找不到了,今天看到一篇好文,顺便转载过来. 简介 说到输出缓冲,首先要说的是一个叫做缓冲器(buffer)的东西.举个简单的例子说明他的作用:我们在编辑一篇文档时,在我们没有保存之前,系统是不会向磁盘写入的,而是

【PHP】Yii2中事务的使用以及代码实例

Yii2中事务的使用以及代码实例 前言 一般我们做业务逻辑,都不会仅仅关联一个数据表,所以,会面临事务问题. 数据库事务(Database Transaction) ,是指作为单个逻辑工作单元执行的一系列操作,要么完全地执行,要么完全地不执行. 事务处理可以确保除非事务性单元内的所有操作都成功完成,否则不会永久更新面向数据的资源.通过将一组相关操作组合为一个要么全部成功要么全部失败的单元,可以简化错误恢复并使应用程序更加可靠.一个逻辑工作单元要成为事务,必须满足所谓的ACID(原子性.一致性.隔

php中ob_get_length缓冲与获取缓冲长度实例_php技巧

本文实例讲述了php中ob_get_length缓冲与获取缓冲长度的方法.分享给大家供大家参考.具体方法如下: file_get_contents() 函数把整个文件读入一个字符串中,和 file() 一样,不同的是 file_get_contents() 把文件读入一个字符串. file_get_contents() 函数是用于将文件的内容读入到一个字符串中的首选方法,如果操作系统支持,还会使用内存映射技术来增强性能. 语法:file_get_contents(path,include_pat