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记录日志的实现代码
Aug 08 PHP
PHP保留两位小数并且四舍五入及不四舍五入的方法
Sep 22 PHP
php调用C代码的实现方法
Mar 11 PHP
php实现的替换敏感字符串类实例
Sep 22 PHP
php实现字符串反转输出的方法
Mar 14 PHP
php中memcache 基本操作实例
May 17 PHP
WordPress中注册菜单与调用菜单的方法详解
Dec 18 PHP
php开发时容易忘记的一些技术细节
Feb 03 PHP
PHP查询并删除数据库多列重复数据的方法(利用数组函数实现)
Feb 23 PHP
PHP自定义函数获取URL中一级域名的方法
Aug 23 PHP
thinkPHP3.2使用RBAC实现权限管理的实现
Aug 27 PHP
laravel 实现划分admin和home 模块分组
Oct 15 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中处理模拟rewrite 效果
2006/12/09 PHP
PHP面向对象学习笔记之二 生成对象的设计模式
2012/10/06 PHP
php计算两个日期相差天数的方法
2015/03/14 PHP
PHP利用超级全局变量$_POST来接收表单数据的实例
2016/11/05 PHP
PHP生成word文档的三种实现方式
2016/11/14 PHP
jQuery ajax+PHP实现的级联下拉列表框功能示例
2019/02/12 PHP
PHP面向对象程序设计之对象克隆clone和魔术方法__clone()用法分析
2019/06/12 PHP
javascript常见操作汇总
2014/09/03 Javascript
JavaScript中使用Object.create()创建对象介绍
2014/12/30 Javascript
JavaScript判断变量是否为数组的方法(Array)
2016/02/24 Javascript
使用vue.js开发时一些注意事项
2016/04/27 Javascript
jQuery height()、innerHeight()、outerHeight()函数的区别详解
2016/05/23 Javascript
使用ajaxfileupload.js实现上传文件功能
2016/08/13 Javascript
预防网页挂马的方法总结
2016/11/03 Javascript
canvas实现图像布局填充功能
2017/02/06 Javascript
vue + socket.io实现一个简易聊天室示例代码
2017/03/06 Javascript
jQuery EasyUI 选项卡面板tabs的使用实例讲解
2017/12/25 jQuery
如何在vue项目中嵌入jsp页面的方法(2种)
2020/02/06 Javascript
微信小程序点击item使之滚动到屏幕中间位置
2020/03/25 Javascript
跟老齐学Python之私有函数和专有方法
2014/10/24 Python
17个Python小技巧分享
2015/01/23 Python
在Python中使用成员运算符的示例
2015/05/13 Python
浅谈python socket函数中,send与sendall的区别与使用方法
2017/05/09 Python
Python用sndhdr模块识别音频格式详解
2018/01/11 Python
scrapy spider的几种爬取方式实例代码
2018/01/25 Python
在pycharm下设置自己的个性模版方法
2019/07/15 Python
python实现输入三角形边长自动作图求面积案例
2020/04/12 Python
豆腐の盛田屋官网:日本自然派的豆乳面膜、肥皂、化妆水、乳液等
2016/10/08 全球购物
美体小铺法国官方网站:The Body Shop法国
2020/06/04 全球购物
优秀员工自荐书
2013/12/19 职场文书
网络程序员自荐信
2014/01/25 职场文书
职业培训师职业生涯规划
2014/02/18 职场文书
活动总结报告怎么写
2014/07/03 职场文书
解决mysql:ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO/YES)
2021/06/26 MySQL
Python turtle编写简单的球类小游戏
2022/03/31 Python
阿里云国际版 使用Nginx作为HTTPS转发代理服务器
2022/05/11 Servers