Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/392.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
相当于linux中的php gzinflate()_Php_Linux_Gzip - Fatal编程技术网

相当于linux中的php gzinflate()

相当于linux中的php gzinflate(),php,linux,gzip,Php,Linux,Gzip,我的服务器使用的是内容类型:application/binary,我可以通过从数据中删除前10个字符和后8个字符并将数据传递给php的gzinflate()命令来解码数据 但是我想用Linux shell脚本做同样的事情,但我不知道怎么做,有人知道Linux中有没有类似于gzinflate的功能,或者有没有其他方法来解决这个问题。在Linux shell中使用gzip、gunzip或zcat时,您总是在处理以10字节头开始的数据。该报头包括(除其他外)2字节签名(也称为“魔术”)、时间戳和压缩方

我的服务器使用的是内容类型:application/binary,我可以通过从数据中删除前10个字符和后8个字符并将数据传递给php的gzinflate()命令来解码数据


但是我想用Linux shell脚本做同样的事情,但我不知道怎么做,有人知道Linux中有没有类似于gzinflate的功能,或者有没有其他方法来解决这个问题。

在Linux shell中使用gzip、gunzip或zcat时,您总是在处理以10字节头开始的数据。该报头包括(除其他外)2字节签名(也称为“魔术”)、时间戳和压缩方法。在前10个字节之后还有一些标志通知可选的辅助头

PHP函数gzinflate()和gzdeflate()不能处理这些头字节。这就是为什么必须从服务器响应中删除前10个字节


因此,为了在Linux shell中膨胀从服务器接收到的数据,只需将其全部传递给gunzip或zcat,而不删除任何内容。

您标记了问题“gzip”-您是否尝试在下载的文件上使用
gunzip
程序?顺便说一句,
应用程序/二进制文件
并不意味着gzip压缩,“正确”一般二进制文件的内容类型是
application/octet stream
。我用gunzip尝试过,但它给出的错误是:gzip:data.gz:不是gzip格式我不知道服务器端实现,但它用gzip提供了正确的输出(解压压缩数据),所以我假设它是压缩格式,它的头显示它是application/binary如果在整个过程中使用gzdecode(),而不删除任何字节,会发生什么?