我继承了一个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
答案 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数据。你需要做更多的研究来弄清楚它是什么。