2010-09-23 29 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