gzcompress不会生成有效的压缩文件?

时间:2011-09-12 12:28:32

标签: php gzip

考虑一下:

$text = "hello";
$text_compressed = gzcompress($text, 6);
$success = file_put_contents('file.gz', $text_compressed);

当我尝试打开file.gz时,我收到错误。如何在终端下打开file.gz而不调用php? (使用gzuncompress工作正常!)

我无法重新编码我所做的每一个文件,因为我现在已经用这种方式编码了几乎十亿个文件!所以如果有解决方案......:)

2 个答案:

答案 0 :(得分:3)

您需要改为使用gzencode()

幸运的是,修复很简单:只需编写一个脚本,逐个打开每个文件,使用gzuncompress()解压缩该文件,然后使用gzencode()将该文件写回而不是gzcompress(),重复所有文件的过程。

或者(因为您说“不想重新编码文件”),您可以使用uncompress从命令行打开现有文件(而不是gunzip / {{1 }})。


正如gzcompress() manual page所述:

  

gzcompress

     

与gzip压缩相同,后者包含一些标头数据。有关gzip压缩的信息,请参阅gzencode()。

答案 1 :(得分:1)

如上所述,你没有真正的gzip压缩文件。要从终端打开文件,您需要uncompress实用程序。