php中ob(Output Buffer 输出缓冲)函数使用方法


Posted in PHP onJuly 21, 2007

来自:http://bbs.phome.net/ShowThread/?threadid=9247&forumid=2 
在PHP编程中,  我们经常会遇到一些直接产生输出的函数,  如passthru(),readfile(),  var_dump()  等.  但有时我们想把这些函数的输出导入到文件中,或者先经过处理再输出,  或者把这些函数的输出作为字符串来处理.   
这时我们就要用到  Output  Buffer(输出缓冲)  函数了.   

处理输出缓冲的函数主要有这么几个:   
ob_start()  开始输出缓冲,  这时PHP停止输出,  在这以后的输出都被转到一个内部的缓冲里.   

ob_get_contents()  这个函数返回内部缓冲的内容.  这就等于把这些输出都变成了字符串.   

ob_get_  length()  返回内部缓冲的长度.   

ob_end_flush()  结束输出缓冲,  并输出缓冲里的内容.  在这以后的输出都是正常输出.   

ob_end_clean()  结束输出缓冲,  并扔掉缓冲里的内容.   

举个例子,  var_dump()函数输出一个变量的结构和内容,  这在调试的时候很有用.   
但如果变量的内容里有  <  ,  >  等HTML的特殊字符,  输出到网页里就看不见了.  怎么办呢?   
用输出缓冲函数能很容易的解决这个问题.   

ob_start();   
var_dump($var);   
$out  =  ob_get_contents();   
ob_end_clean();   

这时var_dump()的输出已经存在  $out  里了.  你可以现在就输出:   

echo  '<pre>'  .  htmlspecialchars($out)  .  '</pre>'  ;   

或者等到将来,  再或者把这个字符串送到模板(Template)里再输出.  

PHP 相关文章推荐
从手册去理解分析PHP session机制
Jul 17 PHP
php中模拟POST传递数据的两种方法分享
Sep 16 PHP
解析PHP中数组元素升序、降序以及重新排序的函数
Jun 20 PHP
基于PHP创建Cookie数组的详解
Jul 03 PHP
php判断用户是否关注微信公众号
Jul 22 PHP
PHP加密技术的简单实现
Sep 04 PHP
轻松掌握php设计模式之访问者模式
Sep 23 PHP
php微信高级接口调用方法(自定义菜单接口、客服接口、二维码)
Nov 28 PHP
PHP那些琐碎的知识点(整理)
May 20 PHP
php使用ftp实现文件上传与下载功能
Jul 21 PHP
PHP 实现手机端APP支付宝支付功能
Jun 07 PHP
Laravel访问出错提示:`Warning: require(/vendor/autoload.php): failed to open stream: No such file or di解决方法
Apr 02 PHP
在普通HTTP上安全地传输密码
Jul 21 #PHP
发布一个迷你php+AJAX聊天程序[聊天室]提供下载
Jul 21 #PHP
PHP+FLASH实现上传文件进度条相关文件 下载
Jul 21 #PHP
一段php加密解密的代码
Jul 16 #PHP
php下一个阿拉伯数字转中文数字的函数
Jul 16 #PHP
php+mysql开源XNA 聚合程序发布 下载
Jul 13 #PHP
PHP如何编写易读的代码
Jul 10 #PHP
You might like
PHPCrawl爬虫库实现抓取酷狗歌单的方法示例
2017/12/21 PHP
基于php伪静态的实现方法解析
2020/07/31 PHP
XmlUtils JS操作XML工具类
2009/10/01 Javascript
javascript打印大全(打印页面设置/打印预览代码)
2013/03/29 Javascript
JS判断两个时间大小的示例代码
2014/01/28 Javascript
Javascript闭包用法实例分析
2015/01/23 Javascript
JavaScript控制图片加载完成后调用回调函数的方法
2015/03/20 Javascript
jquery表单验证插件(jquery.validate.js)的3种使用方式
2015/03/28 Javascript
JavaScript实现搜索框的自动完成功能(一)
2016/02/25 Javascript
Js+Ajax,Get和Post在使用上的区别小结
2016/06/08 Javascript
详解AngularJS验证、过滤器、指令
2017/01/04 Javascript
Bootstrap 过渡效果Transition 模态框(Modal)
2017/03/17 Javascript
修改vue+webpack run build的路径方法
2018/09/01 Javascript
详解如何实现Element树形控件Tree在懒加载模式下的动态更新
2019/04/25 Javascript
vue中使用GraphQL的实例代码
2019/11/04 Javascript
用 Python 爬了爬自己的微信朋友(实例讲解)
2017/08/25 Python
numpy返回array中元素的index方法
2018/06/27 Python
Python使用itertools模块实现排列组合功能示例
2018/07/02 Python
Django使用模板后无法找到静态资源文件问题解决
2019/07/19 Python
Django使用中间键实现csrf认证详解
2019/07/22 Python
Python 下载Bing壁纸的示例
2020/09/29 Python
python 第三方库paramiko的常用方式
2021/02/20 Python
浅谈CSS3鼠标移入图片动态提示效果(transform)
2017/11/06 HTML / CSS
html5 桌面提醒:Notifycations应用介绍
2012/11/27 HTML / CSS
西班牙香水和化妆品购物网站:Arenal Perfumerías
2019/03/01 全球购物
伦敦一家领先的精品零售商:IRIS Fashion
2019/05/24 全球购物
找工作最新求职信
2013/12/22 职场文书
社区工作者思想汇报
2014/01/13 职场文书
优秀管理者事迹材料
2014/05/22 职场文书
优秀会计求职信
2014/07/04 职场文书
一份恶作剧的检讨书
2014/09/13 职场文书
交通事故赔偿协议书
2014/10/16 职场文书
军训个人总结
2015/03/03 职场文书
同事欢送会致辞
2015/07/31 职场文书
交通安全教育心得体会
2016/01/15 职场文书
研究生学习计划书应该怎么写?
2019/09/10 职场文书