PHP gzcompress 使用中的 坑
今天业务上需要对接 webscocket 接口 服务端推流是经过压缩的数据, 百度顺道发现一篇文章
gzcompress的坑 坑踩得比较实在 收藏一下 防止自己也踩坑
【一、效果】
800k的数据压缩成100k多。效果还是不错。
【二、为什么要压缩】
数据库存不下啊 数据库有个 max_allowed_packet限制数据大小。没有改mysql配置的权限,也不想劳烦其他人干脆自己动手。
【三、使用】
失败的尝试千千万万,只说成功的路
|
【四、坑】
如果要json_encode的话,要先于gzcompress执行。如果gzcompress先执行,json_encode返回的是空值。gzcompress(json_encode(数组))这种写法是不对的,得到的结果是一堆乱码。必须分开写,json_encode处理结果赋值给一个变量,然后gzcompress处理这一变量gzcompress结果直接存入数据库不会成功。可以base64_encode一下。
个人总结:
数据库受 max_allowed_packet 限制, 压缩数据在入库数据, gzcompress(json_encode(数组)) 乱码 base64 加密后才能入库 (直接入库乱码)
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 Leon!
评论




