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 has encountered an Access Violation 错误的解决方法
Jan 17 PHP
用PHP将网址字符串转换成超链接(网址或email)
May 25 PHP
PHP中读写文件实现代码
Oct 20 PHP
PHP容易忘记的知识点分享
Apr 30 PHP
php自定义函数截取汉字长度
May 15 PHP
PHP缓存机制Output Control详解
Jul 14 PHP
php使用Jpgraph绘制复杂X-Y坐标图的方法
Jun 10 PHP
php文件操作小结(删除指定文件/获取文件夹下的文件名/读取文件夹下图片名)
May 09 PHP
PHP实现的MD5结合RSA签名算法实例
Oct 07 PHP
ThinkPHP3.2框架自定义配置和加载用法示例
Jun 14 PHP
在 Laravel 项目中使用 webpack-encore的方法
Jul 21 PHP
PHP常用函数之格式化时间操作示例
Oct 21 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开发之归档格式phar文件概念与用法详解【创建,使用,解包还原提取】
2017/11/17 PHP
麻雀虽小五脏俱全 Dojo自定义控件应用
2010/09/04 Javascript
Bootstrap网格系统详解
2016/04/26 Javascript
Web程序员必备的7个JavaScript函数
2016/06/14 Javascript
实例浅析js的this
2016/12/11 Javascript
手机软键盘弹出时影响布局的解决方法
2016/12/15 Javascript
HTML5 js实现拖拉上传文件功能
2020/11/20 Javascript
AngularJS中的promise用法分析
2017/05/19 Javascript
jquery实现图片放大点击切换
2017/06/06 jQuery
慕课网题目之js实现抽奖系统功能
2017/09/19 Javascript
vue2.0+vue-dplayer实现hls播放的示例
2018/03/02 Javascript
vue中使用cookies和crypto-js实现记住密码和加密的方法
2018/10/18 Javascript
vue使用微信JS-SDK实现分享功能
2019/08/23 Javascript
小程序实现日历左右滑动效果
2019/10/21 Javascript
在 Vue 中编写 SVG 图标组件的方法
2020/02/24 Javascript
详解ES6 扩展运算符的使用与注意事项
2020/11/12 Javascript
[28:48]《真视界》- 2017年国际邀请赛
2017/09/27 DOTA
[01:22:28]DOTA2-DPC中国联赛 正赛 SAG vs RNG BO3 第一场 1月18日
2021/03/11 DOTA
python写的一个squid访问日志分析的小程序
2014/09/17 Python
python+selenium打印当前页面的titl和url方法
2018/06/22 Python
python实现列表中由数值查到索引的方法
2018/06/27 Python
浅谈Python爬虫基本套路
2019/03/25 Python
Django框架orM与自定义SQL语句混合事务控制操作
2019/06/27 Python
解决python 文本过滤和清理问题
2019/08/28 Python
详解python statistics模块及函数用法
2019/10/27 Python
如何用Anaconda搭建虚拟环境并创建Django项目
2020/08/02 Python
酒吧员工的岗位职责
2013/11/26 职场文书
餐饮业经理竞聘演讲稿
2014/01/14 职场文书
党员大会主持词
2014/04/02 职场文书
求职信范文大全
2014/05/26 职场文书
商业街策划方案
2014/05/31 职场文书
教师群众路线教育实践活动个人对照检查材料
2014/11/04 职场文书
2015年公路养护工作总结
2015/05/13 职场文书
美容院员工规章制度
2015/08/05 职场文书
JavaScript实现显示和隐藏图片
2021/04/29 Javascript
css实现两栏布局,左侧固定宽,右侧自适应的多种方法
2021/08/07 HTML / CSS