2011-07-29 18 views
0

我想解壓縮一個二進制文件,然後解壓縮以測試compresssion是否正常工作。 然而,「未壓縮」文件與「壓縮」文件具有相同的數據。彷彿從未發生過壓縮。我已經在下面列出了代碼。 由於事先:PHP:使用gzuncompress和fopen解壓縮gzcompressed文件

//compressing 
//read file 
$filename = 'tocompress/tocompress'.$number_input.'.bin'; 
$contents=fread($fp,filesize($filename)); 
fclose($fp); 
//compress file 
$compressing = gzcompress($contents , '0'); 
//write to file 
$fp = fopen('compressed/compressed'.$number_input.'.bin', 'wb'); 
fwrite($fp, $compressing); 
fclose($fp); 

//uncompressing 
//read file 
$uncompfilename='compressed/compressed'.$number_input.'.bin'; 
$fp=fopen($uncompfilename,'rb'); 
$uncompresscontents=fread($fp,filesize($uncompfilename)); 
fclose($fp); 
//uncompress file 
$uncompressing = gzuncompress($uncompresscontents); 
//write to file 
$fp = fopen('uncompressed/uncompressed'.$number_input.'.bin', 'wb'); 
fwrite($fp, $uncompresscontents); 
fclose($fp); 

回答

4

gzcompress需要用於設置壓縮級別,從0-9可選的第二個參數。你將其設置爲0(無壓縮),你應該使用一個int,而不是字符串:

gzcompress($contents, '0');

你想gzcompress($contents, 9);

php.net/gzcompress

壓縮級別。對於最大壓縮,可以給出0爲無壓縮高達9 。