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实时显示输出
Oct 02 PHP
PHP实现提取一个图像文件并在浏览器上显示的代码
Oct 06 PHP
PHP不用递归遍历目录下所有文件的代码
Jul 04 PHP
php随机取mysql记录方法小结
Dec 27 PHP
Symfony2开发之控制器用法实例分析
Feb 05 PHP
php简单生成一组与多组随机字符串的方法
May 09 PHP
yii插入数据库防并发的简单代码
May 27 PHP
PHP实现防盗链的方法分析
Jul 25 PHP
thinkphp5 加载静态资源路径与常量的方法
Dec 24 PHP
PHP实现的多维数组排序算法分析
Feb 10 PHP
PHP基于rabbitmq操作类的生产者和消费者功能示例
Jun 16 PHP
laravel框架模型中非静态方法也能静态调用的原理分析
Nov 23 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
php中的登陆login
2007/01/18 PHP
php 求质素(素数) 的实现代码
2011/04/12 PHP
php数组函数序列之rsort() - 对数组的元素值进行降序排序
2011/11/02 PHP
PHP图片上传代码
2013/11/04 PHP
使用swoole扩展php websocket示例
2014/02/13 PHP
PHP实现递归目录的5种方法
2016/10/27 PHP
利用php做服务器和web前端的界面进行交互
2016/10/31 PHP
php进程daemon化的正确实现方法
2018/09/06 PHP
jquery.jstree 增加节点的双击事件代码
2010/07/27 Javascript
javascript创建动态表单的方法
2015/07/25 Javascript
WEB前端开发框架Bootstrap3 VS Foundation5
2016/05/16 Javascript
基于Echarts 3.19 制作常用的图形(非静态)
2016/05/19 Javascript
修改Jquery Dialog 位置的实现方法
2016/08/26 Javascript
js运动事件函数详解
2016/10/21 Javascript
Express框架之connect-flash详解
2017/05/31 Javascript
基于打包工具Webpack进行项目开发实例
2018/05/29 Javascript
深入解析微信小程序开发中遇到的几个小问题
2020/07/11 Javascript
[02:15]你好,这就是DOTA!
2015/08/05 DOTA
[03:00]2018完美盛典_最佳英雄奖
2018/12/17 DOTA
浅谈Python中函数的参数传递
2016/06/21 Python
Python爬虫_城市公交、地铁站点和线路数据采集实例
2018/01/10 Python
python 通过可变参数计算n个数的乘积方法
2019/06/13 Python
python进程池实现的多进程文件夹copy器完整示例
2019/11/27 Python
有关pycharm登录github时有的时候会报错connection reset的问题
2020/09/15 Python
css3进阶之less实现星空动画的示例代码
2019/09/10 HTML / CSS
美国最大的珠宝商之一:Littman Jewelers
2016/11/13 全球购物
Theo + George官方网站:都柏林时尚品牌
2019/04/08 全球购物
PHP两种查询函数array/row的区别
2013/06/03 面试题
前台接待岗位职责
2013/12/03 职场文书
学校文明单位申报材料
2014/05/06 职场文书
土建施工员岗位职责
2014/07/16 职场文书
个人师德师风自我剖析材料
2014/09/29 职场文书
中秋节英文祝福语句(14句)
2019/09/11 职场文书
python爬取某网站原图作为壁纸
2021/06/02 Python
JS 4个超级实用的小技巧 提升开发效率
2021/10/05 Javascript
Java结构型设计模式之组合模式详解
2022/09/23 Java/Android