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 相关文章推荐
针对初学PHP者的疑难问答(2)
Oct 09 PHP
第十五节--Zend引擎的发展
Nov 16 PHP
简单的移动设备检测PHP脚本代码
Feb 19 PHP
php与Mysql的一些简单的操作
Feb 26 PHP
PHP SESSION的增加、删除、修改、查看操作
Mar 20 PHP
配置eAccelerator和XCache扩展来加速PHP程序的执行
Dec 22 PHP
Zend Framework动作助手FlashMessenger用法详解
Mar 05 PHP
laravel学习教程之存取器
Jul 30 PHP
详解cookie验证的php应用的一种SSO解决办法
Oct 20 PHP
详解PHP 7.4 中数组延展操作符语法知识点
Jul 19 PHP
php菜单/评论数据递归分级算法的实现方法
Aug 01 PHP
php报错502badgateway解决方法
Oct 11 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无刷新上传文件实现代码
2011/09/19 PHP
php冒泡排序、快速排序、快速查找、二维数组去重实例分享
2014/04/24 PHP
PHP Yii框架之表单验证规则大全
2015/11/16 PHP
PHP AjaxForm提交图片上传并显示图片源码
2016/11/29 PHP
PHP基于SPL实现的迭代器模式示例
2018/04/22 PHP
JS中动态添加事件(绑定事件)的代码
2011/01/09 Javascript
利用JS延迟加载百度分享代码,提高网页速度
2013/07/01 Javascript
JavaScript清空数组元素的两种方法简单比较
2015/07/10 Javascript
[原创]JQuery 在表单提交之前修改 提交的值
2016/04/14 Javascript
简单的渐变轮播插件
2017/01/12 Javascript
js实现无缝滚动图
2017/02/22 Javascript
Omi v1.0.2发布正式支持传递javascript表达式
2017/03/21 Javascript
jQuery AJAX 方法success()后台传来的4种数据详解
2018/08/08 jQuery
Node.js net模块功能及事件监听用法分析
2019/01/05 Javascript
vue3修改link标签默认icon无效问题详解
2019/10/09 Javascript
Python使用PIL库实现验证码图片的方法
2016/03/11 Python
Pycharm编辑器技巧之自动导入模块详解
2017/07/18 Python
Python基于identicon库创建类似Github上用的头像功能
2017/09/25 Python
使用tensorflow实现AlexNet
2017/11/20 Python
python数字图像处理之高级滤波代码详解
2017/11/23 Python
Django中redis的使用方法(包括安装、配置、启动)
2018/02/21 Python
钉钉群自定义机器人消息Python封装的实例
2019/02/20 Python
Python列表与元组的异同详解
2019/07/02 Python
Python3中的最大整数和最大浮点数实例
2019/07/09 Python
安装PyInstaller失败问题解决
2019/12/14 Python
python中PyQuery库用法分享
2021/01/15 Python
ToysRus日本官网:玩具反斗城
2018/09/08 全球购物
英国羊皮鞋类领先品牌:Just Sheepskin
2019/12/12 全球购物
大学生实习思想汇报
2014/01/12 职场文书
工厂实习感言
2014/01/14 职场文书
违纪检讨书2000字
2014/02/08 职场文书
个人职业及收入证明
2014/10/13 职场文书
授权委托书协议书
2014/10/16 职场文书
中学生国庆节演讲稿2015
2015/07/30 职场文书
Python 把两层列表展开平铺成一层(5种实现方式)
2021/04/07 Python
MySQL空间数据存储及函数
2021/09/25 MySQL