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制作静态网站的模板框架(四)
Oct 09 PHP
通过table标签,PHP输出EXCEL的实现方法
Jul 24 PHP
smarty模板引擎中变量及变量修饰器用法实例
Jan 22 PHP
老版本PHP转义Json里的特殊字符的函数
Jun 08 PHP
thinkPHP使用pclzip打包备份mysql数据库的方法
Apr 30 PHP
PHP QRCODE生成彩色二维码的方法
May 19 PHP
PHP 搜索查询功能实现
Nov 29 PHP
php实现给二维数组中所有一维数组添加值的方法
Feb 04 PHP
php对xml文件的增删改查操作实现方法分析
May 19 PHP
详解PHP中mb_strpos的使用
Feb 04 PHP
thinkphp 框架数据库切换实现方法分析
May 18 PHP
PHP标准库 (SPL)――Countable用法示例
Jun 05 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
地球防卫队:陪着奥特曼打小怪兽的人类力量 那些经典队服
2020/03/08 日漫
php数据库连接
2006/10/09 PHP
php的ZipArchive类用法实例
2014/10/20 PHP
laravel model模型处理之修改查询或修改字段时的类型格式案例
2019/10/17 PHP
Prototype使用指南之ajax
2007/01/10 Javascript
javascript下操作css的float属性的特殊写法
2007/08/22 Javascript
70+漂亮且极具亲和力的导航菜单设计国外网站推荐
2011/09/20 Javascript
直接拿来用的15个jQuery代码片段
2015/09/23 Javascript
Js的Array数组对象详解
2016/02/22 Javascript
javascript简单实现等比例缩小图片的方法
2016/07/27 Javascript
javascript创建对象的3种方法
2016/11/02 Javascript
Bootstrap栅格系统的使用和理解2
2016/12/14 Javascript
vue.js获取数据库数据实例代码
2017/05/26 Javascript
使用yeoman构建angular应用的方法
2017/08/14 Javascript
微信小程序数据存储与取值详解
2018/01/30 Javascript
iview的table组件自带的过滤器实现
2019/07/12 Javascript
JS数组方法reverse()用法实例分析
2020/01/18 Javascript
详解JavaScript之ES5的继承
2020/07/08 Javascript
Python常用列表数据结构小结
2014/08/06 Python
Python批量重命名同一文件夹下文件的方法
2015/05/25 Python
Python多进程并发(multiprocessing)用法实例详解
2015/06/02 Python
基于python-opencv3的图像显示和保存操作
2019/06/27 Python
python gensim使用word2vec词向量处理中文语料的方法
2019/07/05 Python
Django框架安装方法图文详解
2019/11/04 Python
Python Web静态服务器非堵塞模式实现方法示例
2019/11/21 Python
python使用openCV遍历文件夹里所有视频文件并保存成图片
2020/01/14 Python
Python continue语句实例用法
2020/02/06 Python
Mountain Hardwear官网:攀岩服装和户外装备
2019/09/26 全球购物
德国最大的婴儿用品网上商店:Kidsroom.de(支持中文)
2020/09/02 全球购物
澳大利亚美容产品及化妆品在线:Activeskin
2020/06/03 全球购物
造型师求职自荐信
2013/09/27 职场文书
四川成都导游欢迎词
2014/01/18 职场文书
元旦主持词开场白
2015/05/29 职场文书
七一慰问简报
2015/07/20 职场文书
2019年最新感恩节祝福语(28句)
2019/11/27 职场文书
Nginx配置80端口访问8080及项目名地址方法解析
2021/03/31 Servers