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 相关文章推荐
第十二节--类的自动加载
Nov 16 PHP
PHP中exec与system用法区别分析
Sep 22 PHP
php实现的click captcha点击验证码类实例
Sep 23 PHP
php通过asort()给关联数组按照值排序的方法
Mar 18 PHP
Codeigniter实现发送带附件的邮件
Mar 19 PHP
php文件操作之小型留言本实例
Jun 20 PHP
PHP生成可点击刷新的验证码简单示例
May 13 PHP
php对xml文件的增删改查操作实现方法分析
May 19 PHP
php获取目录下所有文件及目录(多种方法)(推荐)
May 14 PHP
使用composer 安装 laravel框架的方法图文详解
Aug 02 PHP
Yii框架where查询用法实例分析
Oct 22 PHP
如何理解PHP核心特性命名空间
May 28 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
摩卡咖啡
2021/03/03 咖啡文化
如何解决PHP无法实现多线程的问题
2015/09/25 PHP
php函数mkdir实现递归创建层级目录
2016/10/27 PHP
Laravel学习基础之migrate的使用教程
2017/10/11 PHP
ArrayList类(增强版)
2007/04/04 Javascript
JavaScript Event学习第八章 事件的顺序
2010/02/07 Javascript
JQuery Tab选项卡效果代码改进版
2010/04/01 Javascript
jquery中ajax学习笔记4
2011/10/16 Javascript
JS计算网页停留时间代码
2014/04/28 Javascript
jquery序列化表单以及回调函数的使用示例
2014/07/02 Javascript
11种ASP连接数据库的方法
2015/09/18 Javascript
JavaScript必知必会(十) call apply bind的用法说明
2016/06/08 Javascript
Windows系统下安装Node.js的步骤图文详解
2016/11/15 Javascript
微信小程序webview 脚手架使用详解
2019/07/22 Javascript
小程序自定义导航栏兼容适配所有机型(附完整案例)
2020/04/26 Javascript
python实现按行切分文本文件的方法
2016/04/18 Python
Python使用Selenium+BeautifulSoup爬取淘宝搜索页
2018/02/24 Python
python实现键盘控制鼠标移动
2020/11/27 Python
python 生成图形验证码的方法示例
2018/11/11 Python
Python 实现王者荣耀中的敏感词过滤示例
2019/01/21 Python
Python3实现取图片中特定的像素替换指定的颜色示例
2019/01/24 Python
kali中python版本的切换方法
2019/07/11 Python
Django后台管理系统的图文使用教学
2020/01/20 Python
Python continue语句实例用法
2020/02/06 Python
Python操作Jira库常用方法解析
2020/04/10 Python
深入浅析pycharm中 Make available to all projects的含义
2020/09/15 Python
selenium+python自动化78-autoit参数化与批量上传功能的实现
2021/03/04 Python
加拿大国民体育购物网站:National Sports
2018/11/04 全球购物
美国电子产品主要品牌的授权在线零售商:DataVision
2019/03/23 全球购物
出纳员的岗位职责
2014/02/22 职场文书
质量管理标语
2014/06/12 职场文书
工作失职检讨书(精华篇)
2014/10/15 职场文书
2015年质量月活动总结报告
2015/03/27 职场文书
投诉书范文
2015/07/02 职场文书
导游词之襄阳古城
2019/09/27 职场文书
Python基础知识之变量的详解
2021/04/14 Python