如何使用PHP逐块解压缩gzip流?
我无法逐块读取活动http gzip流 简而言之,它不能一块一块地解压流,解压第二块时需要第一块,解压第三块时需要第一块和第二块,否则会返回奇怪的字符(我猜是gzip字符串) 我想没有现成的方法,因为我已经在谷歌上搜索了2天,无论如何,如果你有任何建议,我将不胜感激 以下是我用于解压缩的函数:如何使用PHP逐块解压缩gzip流?,php,gzip,Php,Gzip,我无法逐块读取活动http gzip流 简而言之,它不能一块一块地解压流,解压第二块时需要第一块,解压第三块时需要第一块和第二块,否则会返回奇怪的字符(我猜是gzip字符串) 我想没有现成的方法,因为我已经在谷歌上搜索了2天,无论如何,如果你有任何建议,我将不胜感激 以下是我用于解压缩的函数: function gzdecode1($data){ $g = tempnam('./','gz'); file_put_contents($g,$data); ob_start(
function gzdecode1($data){
$g = tempnam('./','gz');
file_put_contents($g,$data);
ob_start();
readgzfile($g);
$d = ob_get_clean();
unlink($g);
return $d;
}
下面是十个示例块
使用gzopen()
和gzread()
如果是远程文件,您可能需要启用远程文件打开功能,但我从未在这种环境中执行过
$h = gzopen($filename, 'r');
while ($chunk = gzread($h, $chunksize)) {
// do magic
}