PHP gz压缩编码问题


php gzcompress encoding issue

问题:

嗨,我使用 php 的 gzcompression 函数来压缩从 php curl 请求的谷歌页面。我将其存储为html文件,但是在gzuncompress上,某些字符无法正确解码。该页面来自谷歌lietuvos。

法典:

// Encoding used in curl request
curl_setopt($ch, CURLOPT_ENCODING , 'gzip,deflate'); 
//Compressing
gzcompress($res['page'],9);
// Uncompressing
gzuncompress($data);

如果我遗漏了什么,请告诉我?谢谢。在此处输入图像描述

鉴于我们拥有的信息很少,我认为这是换行符和编码在某处具有字符"'0"null字符)的问题。

您可以执行以下操作:

压缩页面并编码为 base64:

base64_encode(gzcompress($res['page'],9));

要解压缩,请从 base64 解码:

gzuncompress(base64_decode($data));

这将确保所有内容都按原样写入和读取,开销约为 33%。

这个问题还有其他解决方案,但这是最容易的。