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 相关文章推荐
做个自己站内搜索引擎
Oct 09 PHP
php xml实例 留言本
Mar 20 PHP
抓取YAHOO股票报价的类
May 15 PHP
PHP 输出缓存详解
Jun 20 PHP
PHP递归返回值时出现的问题解决办法
Feb 19 PHP
深入mysql_fetch_row()与mysql_fetch_array()的区别详解
Jun 05 PHP
函数中使用require_once问题深入探讨 优雅的配置文件定义方法推荐
Jul 02 PHP
详谈PHP文件目录基础操作
Nov 11 PHP
php中二分法查找算法实例分析
Sep 22 PHP
php判断是否为ajax请求的方法
Nov 29 PHP
PHP字典树(Trie树)定义与实现方法示例
Oct 09 PHP
JSON PHP中,Json字符串反序列化成对象/数组的方法
May 31 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函数
2010/02/16 PHP
php简单对象与数组的转换函数代码(php多层数组和对象的转换)
2011/05/18 PHP
Yii2中使用join、joinwith多表关联查询
2016/06/30 PHP
Laravel timestamps 设置为unix时间戳的方法
2019/10/11 PHP
js读写(删除)Cookie实例详解
2013/04/17 Javascript
JavaScript对表格或元素按文本,数字或日期排序的方法
2015/05/26 Javascript
js实现的简单radio背景颜色选择器代码
2015/08/18 Javascript
node.js中实现kindEditor图片上传功能的方法教程
2017/04/26 Javascript
webpack vue项目开发环境局域网访问方法
2018/03/20 Javascript
vue和webpack安装命令详解
2018/06/15 Javascript
Vue2.0学习系列之项目上线的方法步骤(图文)
2018/09/25 Javascript
在Create React App中启用Sass和Less的方法示例
2019/01/16 Javascript
使用jQuery如何写一个含验证码的登录界面
2019/05/13 jQuery
JavaScript 实现同时选取多个时间段的方法
2019/10/17 Javascript
vue组件中节流函数的失效的原因和解决方法
2020/12/02 Vue.js
[06:13]DOTA2进化论(修改版)
2013/10/08 DOTA
Python简单生成随机数的方法示例
2018/03/31 Python
python单例模式原理与创建方法实例分析
2019/10/26 Python
django 中使用DateTime常用的时间查询方式
2019/12/03 Python
如何在vscode中安装python库的方法步骤
2021/01/06 Python
路易威登和香奈儿手袋:LuxeDH
2017/01/12 全球购物
Topman美国官网:英国著名的国际平价时尚男装品牌
2017/12/22 全球购物
廉价航班、机票和酒店:JustFly
2018/02/07 全球购物
Desigual美国官方网站:西班牙服装品牌
2019/03/29 全球购物
会议开场欢迎词
2014/01/15 职场文书
代理商会议邀请函
2014/01/27 职场文书
收银出纳员岗位职责
2014/02/23 职场文书
新学期标语
2014/06/30 职场文书
家属慰问信
2015/02/14 职场文书
2015年市场营销工作总结
2015/07/23 职场文书
婚宴父母致辞
2015/07/27 职场文书
优质服务标语口号
2015/12/26 职场文书
施工安全责任协议书
2016/03/23 职场文书
导游词之广西漓江
2019/11/02 职场文书
Nginx 过滤静态资源文件的访问日志的实现
2021/03/31 Servers
win7配置本地ftp服务器的图文教程
2022/08/05 Servers