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 相关文章推荐
自动把纯文本转换成Web页面的php代码
Aug 27 PHP
php中将图片gif,jpg或mysql longblob或blob字段值转换成16进制字符串
Aug 23 PHP
探讨如何使用SimpleXML函数来加载和解析XML文档
Jun 07 PHP
php+ajax实现图片文件上传功能实例
Jun 17 PHP
2014年最新推荐的10款 PHP 开发框架
Aug 01 PHP
php更新mysql后获取改变行数的方法
Dec 25 PHP
php获取指定(访客)IP所有信息(地址、邮政编码、国家、经纬度等)的方法
Jul 06 PHP
php把数组值转换成键的方法
Jul 13 PHP
PHP实现合并discuz用户
Aug 05 PHP
PHP+jQuery+Ajax实现分页效果 jPaginate插件的应用
Oct 09 PHP
php安装dblib扩展,连接mssql的具体步骤
Mar 02 PHP
PHP常用日期加减计算方法实例小结
Jul 31 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实现货币换算的方法
2014/11/29 PHP
Windows Server 2008 R2和2012中PHP连接MySQL过慢的解决方法
2016/07/02 PHP
thinkPHP5.0框架应用请求生命周期分析
2017/03/25 PHP
Laravel5.0+框架邮件发送功能实现方法图文与实例详解
2019/04/23 PHP
contains和compareDocumentPosition 方法来确定是否HTML节点间的关系
2011/09/13 Javascript
js中文逗号转英文实现
2014/02/11 Javascript
使用javascript控制cookie显示和隐藏背景图
2014/02/12 Javascript
详解JavaScript语法对{}处理的坑爹之处
2014/06/05 Javascript
把Node.js程序加入服务实现随机启动
2015/06/25 Javascript
CSS3实现动态背景登录框的代码
2015/07/28 Javascript
初步了解javascript面向对象
2015/11/09 Javascript
javascript css红色经典选项卡效果实现代码
2016/05/17 Javascript
AngularJS Toaster使用详解
2017/02/24 Javascript
微信小程序如何获取openid及用户信息
2018/01/26 Javascript
JavaScript+HTML5 canvas实现放大镜效果完整示例
2019/05/15 Javascript
thinkjs微信中控之微信鉴权登陆的实现代码
2019/08/08 Javascript
javascrpt密码强度校验函数详解
2020/03/18 Javascript
JavaScript oncopy事件用法实例解析
2020/05/13 Javascript
vue 手机物理监听键+退出提示代码
2020/09/09 Javascript
[01:20]DOTA2 2017国际邀请赛冠军之路无止竞
2017/06/19 DOTA
Python中 Lambda表达式全面解析
2016/11/28 Python
Django密码系统实现过程详解
2019/07/19 Python
python-Web-flask-视图内容和模板知识点西宁街
2019/08/23 Python
python sorted函数的小练习及解答
2019/09/18 Python
Python2与Python3的区别点整理
2019/12/12 Python
python @propert装饰器使用方法原理解析
2019/12/25 Python
用 Python 制作地球仪的方法
2020/04/24 Python
HTML5 Canvas实现放大镜效果示例
2020/03/25 HTML / CSS
英国Zoro工具:手动工具,电动工具和个人防护用品
2016/11/02 全球购物
圣诞节活动策划方案
2014/06/09 职场文书
争当四好少年演讲稿
2014/09/13 职场文书
学生抄袭作业的检讨书
2014/10/02 职场文书
司机岗位职责
2015/02/04 职场文书
水电工岗位职责
2015/02/14 职场文书
离婚起诉书范本
2015/05/18 职场文书
Python实现猜拳与猜数字游戏的方法详解
2022/04/06 Python