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中的日期处理方法集锦
Jan 02 PHP
php获取当前网址url并替换参数或网址的方法
Jun 06 PHP
php中$美元符号与Zen Coding冲突问题解决方法分享
May 28 PHP
php基于表单密码验证与HTTP验证用法实例
Jan 06 PHP
PHP简单选择排序算法实例
Jan 26 PHP
fckeditor上传文件按日期存放及重命名方法
May 22 PHP
php实现word转html的方法
Jan 22 PHP
Yii多表联合查询操作详解
Jun 02 PHP
三个思路解决laravel上传文件报错:413 Request Entity Too Large问题
Nov 13 PHP
原生JS实现Ajax通过GET方式与PHP进行交互操作示例
May 12 PHP
PHP数组遍历的几种常见方式总结
Feb 15 PHP
PHP使用HTML5 FormData对象提交表单操作示例
Jul 02 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
ajax完美实现两个网页 分页功能的实例代码
2013/04/16 PHP
php中session_id()函数详细介绍,会话id生成过程及session id长度
2015/09/23 PHP
twig模板常用语句实例小结
2016/02/04 PHP
Laravel 解决composer相关操作提示php相关异常的问题
2019/10/23 PHP
IE与Firefox下javascript getyear年份的兼容性写法
2007/12/20 Javascript
JS过滤url参数特殊字符的实现方法
2013/12/24 Javascript
JS延迟加载加快页面打开速度示例代码
2013/12/30 Javascript
js调试工具console.log()方法查看js代码的执行情况
2014/08/08 Javascript
angularJS 中input示例分享
2015/02/09 Javascript
JavaScript中isPrototypeOf函数作用和使用实例
2015/06/01 Javascript
jquery replace方法去空格
2017/05/08 jQuery
input file样式修改以及图片预览删除功能详细概括(推荐)
2017/08/17 Javascript
vue轮播图插件vue-awesome-swiper
2017/11/27 Javascript
vuex的简单使用教程
2018/02/02 Javascript
Vue项目部署在Spring Boot出现页面空白问题的解决方案
2018/11/26 Javascript
怎样使你的 JavaScript 代码简单易读(推荐)
2019/04/16 Javascript
小程序云开发教程如何使用云函数实现点赞功能
2019/05/18 Javascript
Vue 2.0 中依赖注入 provide/inject组合实战
2019/06/20 Javascript
Vue-cli3项目引入Typescript的实现方法
2019/10/18 Javascript
小程序点击图片实现png转jpg
2019/10/22 Javascript
vue实现路由监听和参数监听
2019/10/29 Javascript
Python单例模式实例详解
2017/03/01 Python
Python断言assert的用法代码解析
2018/02/03 Python
Python3几个常见问题的处理方法
2019/02/26 Python
浅谈tensorflow 中tf.concat()的使用
2020/02/07 Python
Django QuerySet查询集原理及代码实例
2020/06/13 Python
opencv 图像礼帽和图像黑帽的实现
2020/07/07 Python
安装pyinstaller遇到的各种问题(小结)
2020/11/20 Python
python 基于opencv实现图像增强
2020/12/23 Python
STAUD官方网站:洛杉矶独有的闲适风格
2019/04/11 全球购物
意大利网上药房:Farmacia 33
2020/01/27 全球购物
银行存款证明样本
2014/01/17 职场文书
运动会广播稿200米
2014/01/27 职场文书
自愿离婚协议书范本
2014/09/13 职场文书
网站文案策划岗位职责
2015/04/14 职场文书
百日宴上的祝酒词
2015/08/10 职场文书