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 相关文章推荐
Win9x/ME下Apache+PHP安装配置
Oct 09 PHP
PHP 开发工具
Dec 06 PHP
用php将任何格式视频转为flv的代码
Sep 03 PHP
php实现文件下载实例分享
Jun 02 PHP
PHP中读取文件的几个方法总结(推荐)
Jun 03 PHP
PHP微信开发之根据用户回复关键词\位置返回附近信息
Jun 24 PHP
php cookie工作原理与实例详解
Jul 18 PHP
Yii实现文章列表置顶功能示例
Oct 18 PHP
PHP文件操作实例总结【文件上传、下载、分页】
Dec 08 PHP
PHP面向对象程序设计之接口的继承定义与用法详解
Dec 20 PHP
PHP Primary script unknown 解决方法总结
Aug 22 PHP
php解析非标准json、非规范json的方式实例
Dec 10 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
解析strtr函数的效率问题
2013/06/26 PHP
PHP中exec与system用法区别分析
2014/09/22 PHP
js 处理数组重复元素示例代码
2013/12/27 Javascript
js的image onload事件使用遇到的问题
2014/07/15 Javascript
Angular中的Promise对象($q介绍)
2015/03/03 Javascript
javascript搜索框效果实现方法
2015/05/14 Javascript
JQuery+Ajax实现数据查询、排序和分页功能
2015/09/27 Javascript
轻松学习jQuery插件EasyUI EasyUI创建菜单与按钮
2015/11/30 Javascript
浅析Javascript中bind()方法的使用与实现
2016/04/29 Javascript
jQuery实现拖动剪裁图片作为头像
2016/12/28 Javascript
angular 动态组件类型详解(四种组件类型)
2017/02/22 Javascript
详解VueJs异步动态加载块
2017/03/09 Javascript
关于webpack2和模块打包的新手指南(小结)
2017/08/07 Javascript
Vue中的vue-resource示例详解
2018/11/02 Javascript
Vue 实现复制功能,不需要任何结构内容直接复制方式
2019/11/09 Javascript
js实现简单音乐播放器
2020/06/30 Javascript
Python常用内置函数总结
2015/02/08 Python
Python实现简单截取中文字符串的方法
2015/06/15 Python
Python使用os模块和fileinput模块来操作文件目录
2016/01/19 Python
使用Python的Tornado框架实现一个Web端图书展示页面
2016/07/11 Python
Python利用Beautiful Soup模块修改内容方法示例
2017/03/27 Python
python 计算两个日期相差多少个月实例代码
2017/05/24 Python
对tensorflow 中tile函数的使用详解
2020/02/07 Python
Django url 路由匹配过程详解
2021/01/22 Python
详解HTML5 canvas绘图基本使用方法
2018/01/29 HTML / CSS
全球知名旅游社区巴西站点:TripAdvisor巴西
2016/07/21 全球购物
澳大利亚领先的优质葡萄酒拍卖会:Langton’s Fine Wines
2019/03/24 全球购物
出纳员岗位职责风险
2014/03/06 职场文书
大学生第一学年自我鉴定
2014/09/12 职场文书
群众路线教育实践活动自我剖析思想汇报
2014/10/04 职场文书
工作疏忽检讨书500字
2014/10/26 职场文书
2015年管理人员工作总结
2015/05/13 职场文书
居委会工作总结2015
2015/05/18 职场文书
小学生纪律委员竞选稿
2015/11/19 职场文书
opencv读取视频并保存图像的方法
2021/06/04 Python
纯html+css实现Element loading效果
2021/08/02 HTML / CSS