2010-09-23 40 views
0

我创建一个zip档案通过php 和另一个zip档案通过winrar,但从相同的文件。通过PHP压缩具有不同的大小,通过winrar

两个档案的大小是不同的。通过winrar的一个更大(2个字节)。

为什么?谢谢。

OK NOW。 压缩文件使用php正确创建。

的问题是,我使用

header('Content-Type: application/zip'); 
header('Content-disposition: attachment; filename='.$name); 
header('Content-Length: ' . filesize($name)); 

发送它,并dont有有ob_start();ob_end_clean();

这就是为什么文件它通过头部来的大小是不同的.. 您的帮助无论如何感谢;)

+0

您是否对文件进行了字节比较,以查看差异是否一致? – 2010-09-23 17:12:30

+0

我不明白你的问题。没有什么不好的尺寸 - 这很正常。而你的头部必须包含**实际**大小。 – 2010-09-24 09:52:30

回答

1

可能有很多原因。我敢打赌,因为它只有2个字节,所以winrar会在归档中添加一个特殊的识别标记,以知道它是由winrar完成的。

另一种可能性是,你可以设置不同的压缩级别,并且你的php zip函数可以设置为更高的压缩率。无论是或可能是真的,只有真正发现的方法是使用十六进制编辑器并检查这两个文件并查看差异可能位于何处。

另一种检查方式是通过压缩不同的文件大小(但是相同的文件)并查看差异是否总是两个字节。如果它总是两个字节,那么winrar会添加一个识别标记。如果不是,那么压缩率是不同的。

+0

问题是,我可以使用winrar解压缩它。但其他人试图解压缩,并得到了一个错误mesasge >>警告[pokus_php.zip]:在开始或zip文件内额外的2个字节 (试图处理反正)我试过php ZIPARCHIVE和一些Zip类基于Rochak的CreateZipFile Chauhan ..我想使用zip文件进入SCORM,问题是来自php的一个不好,并且来自winrar的那个很好 – mmmm 2010-09-24 08:03:15

+0

最初发布的信息很好。您可以发布您正在使用的整个脚本,因为这两个额外的字节可能很容易由空白引起。 – 2010-09-24 14:42:12