PHP嵌套输出缓冲代码实例


Posted in PHP onMay 12, 2015

PHP的输出缓存是可以嵌套的。用ob_get_level()就可以输出嵌套级别。
测试发现在cli和浏览器下输出结果不一样(PHP5.4)。

PHP嵌套输出缓冲代码实例

手册说明如下:

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.'<br>';

echo 'level:'.$c.',ouput:'.$d.'<br>';

echo 'level:'.$e.',ouput:'.$f.'<br>';

结果如下:

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.'<br>';

echo 'level:'.$c.',ouput:'.$d.'<br>';

echo 'level:'.$e.',ouput:'.$f.'<br>';

结果如下:

level:1,ouput:php1

level:2,ouput:php2

level:2,ouput:php3
PHP 相关文章推荐
php4的session功能评述(三)
Oct 09 PHP
php中取得文件的后缀名?
Feb 20 PHP
PHP彩蛋信息介绍和阻止泄漏的方法(隐藏功能)
Aug 06 PHP
win7 64位系统 配置php最新版开发环境(php+Apache+mysql)
Aug 15 PHP
PHP date()函数警告: It is not safe to rely on the system解决方法
Aug 20 PHP
Zend Framework分页类用法详解
Mar 22 PHP
ThinkPHP静态缓存简单配置和使用方法详解
Mar 23 PHP
完美解决phpdoc导出文档中@package的warning及Error的错误
May 17 PHP
php 判断IP为有效IP地址的方法
Jan 28 PHP
PHP+Ajax实现的博客文章添加类别功能示例
Mar 29 PHP
Yii框架参数配置文件params用法实例分析
Sep 11 PHP
PHP number_format函数原理及实例解析
Jul 14 PHP
php实现修改新闻时删除图片的方法
May 12 #PHP
php跨服务器访问方法小结
May 12 #PHP
php一个解析字符串排列数组的方法
May 12 #PHP
PHP获取远程图片并保存到本地的方法
May 12 #PHP
PHP IDE PHPStorm配置支持友好Laravel代码提示方法
May 12 #PHP
php解析xml方法实例详解
May 12 #PHP
php实现统计网站在线人数的方法
May 12 #PHP
You might like
谈谈PHP语法(5)
2006/10/09 PHP
为PHP5.4开启Zend OPCode缓存
2014/12/26 PHP
yii权限控制的方法(三种方法)
2015/12/28 PHP
PHP给文字内容中的关键字进行套红处理
2016/04/12 PHP
php利用ob_start()清除输出和选择性输出的方法
2018/01/18 PHP
javascript 放大镜效果js组件 qsoft.PopBigImage.v0.35 加入了chrome支持
2009/04/07 Javascript
javascript 写类方式之二
2009/07/05 Javascript
用 Javascript 验证表单(form)中多选框(checkbox)值
2009/09/08 Javascript
jQuery lazyload 的重复加载错误以及修复方法
2010/11/19 Javascript
Safari5中alert的无限循环BUG
2011/04/07 Javascript
Javascript 实现复制(Copy)动作方法大全
2014/06/20 Javascript
简单实现异步编程promise模式
2015/07/31 Javascript
jquery实现的Banner广告收缩效果代码
2015/09/02 Javascript
js取0-9随机取4个数不重复的数字代码实例
2019/03/27 Javascript
使用异步组件优化Vue应用程序的性能
2019/04/28 Javascript
Vue 实现CLI 3.0 + momentjs + lodash打包时优化
2019/11/13 Javascript
Vue中Table组件行内右键菜单实现方法(基于 vue + AntDesign)
2019/11/21 Javascript
nodejs+koa2 实现模仿springMVC框架
2020/10/21 NodeJs
[10:28]2018DOTA2国际邀请赛寻真——VGJ.S寻梦之路
2018/08/15 DOTA
python实现html转ubb代码(html2ubb)
2014/07/03 Python
五种Python转义表示法
2020/11/27 Python
python不同版本的_new_不同点总结
2020/12/09 Python
matplotlib事件处理基础(事件绑定、事件属性)
2021/02/03 Python
宝拉珍选美国官网:Paula’s Choice美国
2018/01/07 全球购物
大学生实习期自我评价范文
2013/10/03 职场文书
百度吧主申请感言
2014/01/12 职场文书
2014年党员干部四风问题自我剖析材料
2014/09/29 职场文书
搬迁通知
2015/04/20 职场文书
超强台风观后感
2015/06/09 职场文书
幼儿园六一主持词
2015/06/30 职场文书
美甲店的创业计划书模板
2019/08/23 职场文书
python的列表生成式,生成器和generator对象你了解吗
2022/03/16 Python
Win10防火墙白名单怎么设置?Win10添加防火墙白名单方法
2022/04/06 数码科技
请求模块urllib之PYTHON爬虫的基本使用
2022/04/08 Python
Ubuntu18.04下QT开发Android无法连接设备问题解决实现
2022/06/01 Java/Android
怎么禁用Win11输入法 最新Win11输入法关闭教程
2022/08/05 数码科技