Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/282.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用PHP逐块解压缩gzip流?_Php_Gzip - Fatal编程技术网

如何使用PHP逐块解压缩gzip流?

如何使用PHP逐块解压缩gzip流?,php,gzip,Php,Gzip,我无法逐块读取活动http gzip流 简而言之,它不能一块一块地解压流,解压第二块时需要第一块,解压第三块时需要第一块和第二块,否则会返回奇怪的字符(我猜是gzip字符串) 我想没有现成的方法,因为我已经在谷歌上搜索了2天,无论如何,如果你有任何建议,我将不胜感激 以下是我用于解压缩的函数: function gzdecode1($data){ $g = tempnam('./','gz'); file_put_contents($g,$data); ob_start(

我无法逐块读取活动http gzip流

简而言之,它不能一块一块地解压流,解压第二块时需要第一块,解压第三块时需要第一块和第二块,否则会返回奇怪的字符(我猜是gzip字符串)

我想没有现成的方法,因为我已经在谷歌上搜索了2天,无论如何,如果你有任何建议,我将不胜感激

以下是我用于解压缩的函数:

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
}