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 相关文章推荐
浅谈Windows下 PHP4.0与oracle 8的连接设置
Oct 09 PHP
PHP在获取指定目录下的目录,在获取的目录下面再创建文件,多平台
Aug 03 PHP
PHP递归删除目录几个代码实例
Apr 21 PHP
typecho插件编写教程(六):调用接口
May 28 PHP
php session的锁和并发
Jan 22 PHP
Smarty分页实现方法完整实例
May 11 PHP
yum命令安装php7和相关扩展
Jul 04 PHP
深入理解Yii2.0乐观锁与悲观锁的原理与使用
Jul 26 PHP
PHP实现字符串的全排列详解
Apr 24 PHP
Laravel6.0.4中将添加计划任务事件的方法步骤
Oct 15 PHP
PHP网页缓存技术优点及代码实例
Jul 29 PHP
PHP设计模式(观察者模式)
Jul 07 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
mysql From_unixtime及UNIX_TIMESTAMP及DATE_FORMAT日期函数
2010/03/21 PHP
php使用gettimeofday函数返回当前时间并存放在关联数组里
2015/03/19 PHP
百度工程师讲PHP函数的实现原理及性能分析(三)
2015/05/13 PHP
服务器端的JavaScript脚本 Node.js 使用入门
2012/03/07 Javascript
使用js检测浏览器是否支持html5中的video标签的方法
2014/03/12 Javascript
JavaScript中实现异步编程模式的4种方法
2014/09/24 Javascript
第一次接触JS require.js模块化工具
2016/04/17 Javascript
JavaScript实现输入框与清空按钮联动效果
2016/09/09 Javascript
巧用Vue.js+Vuex制作专门收藏微信公众号的app
2016/11/03 Javascript
javascript设计模式之单体模式学习笔记
2017/02/15 Javascript
详解在Vue中通过自定义指令获取dom元素
2017/03/04 Javascript
Form表单上传文件(type=&quot;file&quot;)的使用
2017/08/03 Javascript
vue实现手机号码抽奖上下滚动动画示例
2017/10/18 Javascript
vue iview多张图片大图预览、缩放翻转
2019/07/13 Javascript
微信小程序批量监听输入框对按钮样式进行控制的实现代码
2019/10/12 Javascript
keep-alive保持组件状态的方法
2020/12/02 Javascript
[01:03:31]DOTA2上海特级锦标赛B组资格赛#1 Alliance VS Fnatic第二局
2016/02/26 DOTA
Python切片用法实例教程
2014/09/08 Python
Dlib+OpenCV深度学习人脸识别的方法示例
2019/05/14 Python
Python代码太长换行的实现
2019/07/05 Python
详解PANDAS 数据合并与重塑(join/merge篇)
2019/07/09 Python
pytorch 数据处理:定义自己的数据集合实例
2019/12/31 Python
vscode写python时的代码错误提醒和自动格式化的方法
2020/05/07 Python
Html5+JS实现手机摇一摇功能
2015/04/24 HTML / CSS
LTD Commodities:礼品,独特发现,家居装饰,家用器皿
2017/08/11 全球购物
介绍一下HTTP、HTTPS和SSL
2012/12/16 面试题
庆八一活动方案
2014/01/25 职场文书
畜牧兽医本科生的自我评价
2014/03/03 职场文书
廉洁自律演讲稿
2014/05/22 职场文书
物理系毕业生自荐书
2014/06/13 职场文书
嘉宾邀请函
2015/01/31 职场文书
瘦西湖导游词
2015/02/03 职场文书
教师个人培训总结
2015/02/11 职场文书
大班上学期个人总结
2015/02/13 职场文书
初中生思想道德自我评价
2015/03/09 职场文书
小学教研工作总结2015
2015/05/13 职场文书