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 相关文章推荐
使用淘宝IP库获取用户ip地理位置
Oct 27 PHP
ThinkPHP3.1新特性之动态设置自动完成及自动验证示例代码
Jun 23 PHP
PHP实现定时执行任务的方法
Oct 05 PHP
php的ZipArchive类用法实例
Oct 20 PHP
Zend Framework分页类用法详解
Mar 22 PHP
php仿微信红包分配算法的实现方法
May 13 PHP
PHP实现时间比较和时间差计算的方法示例
Jul 24 PHP
PHP二维关联数组的遍历方式(实例讲解)
Oct 18 PHP
PHP中上传文件打印错误错误类型分析
Apr 14 PHP
PHP实现简单的协程任务调度demo示例
Feb 01 PHP
PHP随机生成中文段落示例【测试网站内容时使用】
Apr 26 PHP
基于PHP实现堆排序原理及实例详解
Jun 19 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 EOT定界符的使用详解
2008/09/30 PHP
php+highchats生成动态统计图
2014/05/21 PHP
高质量PHP代码的50个实用技巧必备(下)
2016/01/22 PHP
PHP微信开发之微信消息自动回复下所遇到的坑
2016/05/09 PHP
PHP基于socket实现客户端和服务端通讯功能
2017/07/13 PHP
PHP抽象类和接口用法实例详解
2019/07/20 PHP
由Javascript实现的页面日历
2011/11/04 Javascript
JQuery入门—编写一个简单的JQuery应用案例
2013/01/03 Javascript
javascript得到当前页的来路即前一页地址的方法
2014/02/18 Javascript
JavaScript中对象介绍
2014/12/31 Javascript
js右下角弹出提示框示例代码
2016/01/12 Javascript
jQuery基于BootStrap样式实现无限极地区联动
2016/08/26 Javascript
element 结合vue 在表单验证时有值却提示错误的解决办法
2018/01/22 Javascript
基于Nodejs的Tcp封包和解包的理解
2018/09/19 NodeJs
JS中验证整数和小数的正则表达式
2018/10/08 Javascript
JavaScript解析及序列化JSON的方法实例分析
2019/01/04 Javascript
jquery操作checkbox的常用方法总结【附测试源码下载】
2019/06/10 jQuery
vue+iview实现分页及查询功能
2020/11/17 Vue.js
[01:14:55]EG vs Spirit Supermajor 败者组 BO3 第三场 6.4
2018/06/05 DOTA
进一步探究Python中的正则表达式
2015/04/28 Python
利用Python实现Windows下的鼠标键盘模拟的实例代码
2017/07/13 Python
python读取文本中的坐标方法
2018/10/14 Python
运用PyTorch动手搭建一个共享单车预测器
2019/08/06 Python
Python实现生成密码字典的方法示例
2019/09/02 Python
python实现单链表的方法示例
2019/09/03 Python
matplotlib jupyter notebook 图像可视化 plt show操作
2020/04/24 Python
css3实现一个div设置多张背景图片及background-image属性实例演示
2017/08/10 HTML / CSS
俄罗斯品牌服装和鞋子在线商店:BRIONITY
2020/03/26 全球购物
关于赌博的检讨书
2014/01/08 职场文书
初中生物教学反思
2014/01/10 职场文书
国贸专业大学生职业生涯规划范文
2014/01/10 职场文书
安全生产一岗双责责任书
2014/07/28 职场文书
国防教育标语
2014/10/08 职场文书
费城故事观后感
2015/06/10 职场文书
5个pandas调用函数的方法让数据处理更加灵活自如
2022/04/24 Python
shell进度条追踪指令执行时间的场景分析
2022/06/16 Servers