2011-07-29 3 views
0

バイナリファイルを解凍して圧縮を解凍して、圧縮が機能しているかどうかをテストしようとしています。 しかし、「圧縮されていない」ファイルには、「圧縮された」ファイルと同じデータがあります。あたかも非圧縮が起こったかのように。私は以下のコードを列挙している。予め おかげ: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');

をしたいしているphp.net/gzcompressからgzcompress($contents, 9);

圧縮レベル。圧縮を行わない場合は0、最大圧縮の場合は9 まで指定できます。

関連する問題