zlib压缩文件有问题

时间:2016-04-27 02:28:39

标签: php zlib compression

我继承了一个zlib压缩文件,长话短说,我需要UN-zlib将这只小狗压缩回原来的内容。

我一直绞尽脑汁试图弄清楚世界上发生了什么,但我正在撞墙,我希望你们能帮助我找出正在发生的事情。

到目前为止,我已经完成了很多事情,我对每一件事都没有让你感到厌烦,但这就是我最后一次降落的原因,而且我得到的是输出乱码,不知道是什么heck是错误的,特别是解码的最后一步抱怨数据说:

  

警告:gzuncompress():数据错误   第6行的C:\ xampp \ htdocs \ test-box \ index.php

     

警告:zlib_decode():   第8行的C:\ xampp \ htdocs \ test-box \ index.php中的数据错误

这是代码 - 没有什么花哨的,我试着让它工作,然后再过于疯狂了,所以简单性应该让我们更好地分析它。

<?php
    $filename = 'c5ytvbg4y.x';             // this is the zlib compressed file
    $file = filesize($filename);           // using this for the length
    $zd = gzopen($filename, "r");          // create valid pointer
    $contents = gzread($zd, $file);        // binary safe read the content
    $decoded = gzuncompress($contents);    // using gzdecode produces the same issue
    gzclose($zd);                          // close the pointer
    zlib_decode($decoded);                 // decode it but I get nothing but garble
?>

任何帮助将不胜感激。理想情况下,我希望能够打开它将其解压缩回正常并将其保存到新文件中。但此刻我很高兴只是为了找出原因,我得到的只是乱码。另外请记住,我知道上面的$file并不理想,我会稍后提出一个while !feof($zd)或类似的东西,我想暂时保持简单,同时尝试将更大的问题弄清楚

任何想法,建议,建议,代码协助或诸如此类的东西都会非常感激,TIA。

附加

@ Mark的要求:

0A 12 0F 04 04 D8 44 DA BF 63 C4 93 93 3B 49 51 17 A2 6F E3 0C 12 4D E4 24 F6 C8 BA D0 60 76 81

2 个答案:

答案 0 :(得分:2)

它绝对不是&#34; zlib压缩文件&#34;,至少不是前32个字节,也不是任何使用deflate压缩方法的格式(例如gzip,zip,png等),因为提供的字节中没有有效的deflate压缩数据。

答案 1 :(得分:0)

The zlib header typically starts with hexadecimal 78.您的数据以0A开头,该数据无效,是zlib标头的一部分。 (从技术上讲,它有点有效,但它意味着任何版本的zlib都不支持压缩格式。)

gzip标头以十六进制1F 8B开头。这在您的数据中也不存在。

所以,我不确定这些数据是什么,但它既不是gzip也不是zlib数据。你需要做更多的研究来弄清楚它是什么。