网站地图    收藏   

主页 > php专栏 > php综合实列 >

PHP基础之输出缓冲区基本概念、原理分析

来源:自学PHP网    时间:2019-08-01 11:26 作者:小飞侠 阅读:

[导读] PHP基础之输出缓冲区基本概念、原理分析...

本文实例讲述了PHP基础之输出缓冲区。分享给大家供大家参考,具体如下:一、概念当缓冲区满了、或者PHP运行完毕、或者在必要时候进行输出,才会将数据输出到浏览器,此缓冲数据的区域称为PHP的输出缓冲区(OB)。二、原理echo、print_r之类的会输出数据的代码(实际上许多函数都会产生输出),PHP就会将要输出的数据放到PHP自身的缓冲区,等待输出;输出缓冲区层的行为跟你使用的SAPI(web或cli)相关,不同的SAPI可能有不同的行为。

三、输出缓冲区的配置

output_buffering注意,以上三个值不能在运行时使用ini_set()改这几个选项的值。关于PHP CLI方式执行时的配置,与FPM不太一样,有几点需要注意的是:

①ob_gzhandler : 使用ext/zlib压缩输出;

③ob_iconv_handler : 使用ext/iconv转换字符编码;

⑤ob_[inflate/deflate]_handler : 使用ext/http压缩输出;

四、输出缓冲区相关方法 ob_clean(); ?/删除内部缓冲区的内容,不关闭缓冲区(不输出)。
ob_end_clean(); ?/删除内部缓冲区的内容,关闭缓冲区(不输出)。
ob_get_clean(); ?/返回内部缓冲区的内容,关闭缓冲区。
ob_flush(); //发送缓冲区内容到下一层,删除缓冲区内容,不关闭缓冲区。
ob_end_flush(); //发送缓冲区内容到下一层,删除缓冲区的内容,关闭缓冲区。
ob_get_flush(); //返回缓冲区的内容,并关闭缓冲区,再释放缓冲区的内容。
ob_get_contents(); //返回缓冲区的内容,不输出。
ob_get_length(); //返回缓冲区的长度,如果缓冲区未被激活,则返回FALSE。
ob_get_status() ; ?/得到所有输出缓冲区的状态。
ob_implicit_flush(); //打开/关闭绝对刷送。五、输出缓冲区的应用在session、cookie、header等设置函数之前开启:

出现这个错误的原因是, 在header之前已经输出了某些数据,而输出这些数据的同时, 服务器将会同时发送一个响应状态到浏览器上(既然有输出,即这个请求是有效的),而其后你又再次使用header函数

2、控制PHP程序的下载功能:php缓存技术总结》、《php面向对象程序设计入门教程》、《PHP基本语法入门教程》、《PHP数组(Array)操作技巧大全》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》

希望本文所述对大家PHP程序设计有所帮助。

自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习

京ICP备14009008号-1@版权所有www.zixuephp.com

网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com

添加评论