郑州网站后台培训学校介绍关于PHP的缓冲

发布日期:2019/08/16 10:40:08 浏览次数:114

1、output_buffering

这个配置是PHP本身的缓冲区配置,有三个值,分别是on/off/某一个具体字节大小,on 顾名思义是开启缓冲区,off 是关闭。

最后一个意思是可以写具体的某个字节大小,与此同时会自动开启缓冲区,也就是说到了这个大小的字节时会自动输出数据到apache,也叫刷新,清空缓冲区。

2、implicit_flush

这个就是负责配置apache缓冲区的,两个配置参数on/off,on 开启的话,会自动刷新缓冲区将数据输出给客户端,off 则相反,需要等待传输指令,也就是下令传输到客户端,不会自动执行PHP操作关于缓冲区的函数,ob_implicit_flush 是否自动刷新缓冲区,注意这个是apache服务器的,flush 刷新指令,或者说是传输指令,让apache服务器清空,刷新,传输数据到客户端,ob_start 打开缓冲区,这个函数一运行,php.ini配置文件里的output_buffering将失效,ob_flush 指令,将通知php本身缓冲区传输到apache服务器,ob_clean 清除缓冲区内容,ob_end_clean 清除并关闭缓冲区,ob_end_flush 传输数据到apache服务器,然后关闭缓冲区,ob_get_clean 获取缓冲区内容并关闭缓冲区,ob_get_contents 获取输出缓冲区里的内容,ob_get_flush 获取缓冲区里的内容,并且发送到apache服务器,ob_get_length 获取缓冲区里内容长度,ob_list_handlers 运行ob_start函数的回调函数名称,ob_gzhandler 运行ob_start函数的回调函数名称,注意该函数在写入缓冲区之前会对内容进行gzip与zlib压缩处理。

20190814095047_65523f3ffb76e4703b46a4daef9c21f6_3.jpeg

实际应用的问题

这里说几个实际中用到时发生的问题,比如nginx服务器有配置fastcgi_buffer_size 4k 也就是说只有当缓冲区到了4K时才会刷新输出,所以当你调用flush函数时一定要注意,否则看不到效果。

关于apache模块mod_gzip,当你flush后通知apache刷新缓冲区,这时apache发现此模块开启是需要压缩,就会输到mod_gzip的缓冲区中去,这时候内容是不会立马到客户端的,需要注意一下这点,如无需要就不要开启,如果有需要压缩在传输的话建议使用ob_gzhandler。

郑州宏略科技有限公司是一家产教结合的IT培训企业,目前主要开设课程有:UI设计、PHP程序、WEB前端、SEO优化、网页设计等,学员毕业即可高薪就业。各位想要参加培训的学生可以直接拨打公司客服电话报名哦!

  1. 上一篇:郑州网站后台培训学校介绍PHP代码优化技巧
  2. 下一篇:郑州网站后台培训学校介绍PHP网站制作的基本流程

Copyright©2018-2019 红狐企业网IT培训中心 www.xxxxxxx.edu.cn 版权所有 All Rights Reserved 豫ICP备16004903号-7