首页 > 后端开发 > php教程 > curl - php中开启缓冲压缩 ob_start('ob_gzhandler') 之后是在什么时候开始的压缩?

curl - php中开启缓冲压缩 ob_start('ob_gzhandler') 之后是在什么时候开始的压缩?

WBOY
发布: 2016-06-06 20:46:05
原创
985 人浏览过

我开启压缩 ob_start('ob_gzhandler') 之后,将ob_get_contents 的内容写到文件里面,但是文件里面内容是纯文本,字符串数据并没有压缩
难道是说这个压缩过程是在s端发送data到c端的时候执行的吗?也就是将数据压缩后走http发送给client的browser,而本地存储的过程不会启用压缩?

如果我想将数据压缩存入本地就只能 fwrite($fp,gzcompress(ob_get_contents())) 这样了?

回复内容:

我开启压缩 ob_start('ob_gzhandler') 之后,将ob_get_contents 的内容写到文件里面,但是文件里面内容是纯文本,字符串数据并没有压缩
难道是说这个压缩过程是在s端发送data到c端的时候执行的吗?也就是将数据压缩后走http发送给client的browser,而本地存储的过程不会启用压缩?

如果我想将数据压缩存入本地就只能 fwrite($fp,gzcompress(ob_get_contents())) 这样了?

对的,ob_start('ob_gzhandler')是只压缩页面的输出缓存,根据浏览器请求的压缩方式('gzip', 'deflate')进行相应压缩返回.
gzcompress的压缩方式是ZLIB,gzencode是gzip.本地的话,就只能gzcompress(ob_get_contents())了

ob是Output Buffer的缩写,是用来操控输出的(CGI的情况下就是页面)

如果要读写本地压缩文件,做法有很多,我推荐用zlib://YOUR_FILE_PATH这样的方法来读写本地压缩文件(文档),stream形式的api应该能减少function call和中间内存的开销,代码也干净,还可以很容易地做到配置决定压缩与否,必要时还可以自己实现xxx:// 隐约记得SAE就是这么玩的来着

相关标签:
来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板