2012-03-01 4 views
0

나는 this site에 따라 파일을 압축하고 있습니다 :gzip에는 항상 확장 프로그램이 필요합니까?

$file_to_compress = $dest; 
//$gz_file_to_produce = $dest . ".gz"; 
$gz_file_to_produce = substr($dest, 0, -3) . ".gz"; 

$data = implode("", file($file_to_compress)); 
$gzdata = gzencode($data, 9); 
$fp = fopen($gz_file_to_produce, "w"); 
fwrite($fp, $gzdata); 
fclose($fp); 

나는 그것을에서 filename.dbfilename.db.gz 파일을 가져 $gz_file_to_produce = $dest . ".gz";를 사용하는 경우.

$gz_file_to_produce = substr($dest, 0, -3) . ".gz";을 사용하면 filename.gz 파일이 생성됩니다. 하지만 파일을 열면 filename에는 확장자 (.db가 없습니다)가 없습니다.

gzip에는 항상 확장 프로그램이 필요합니까?

답변

1

네, 인코더가 FNAME 헤더를 쓰지 않는 한, gzencode()은 그렇지 않습니다.

압축을 풀 때 FNAME 헤더가 없으면 압축 해제 응용 프로그램은 기본적으로 .gz 확장명을 원본 파일에서 대상 파일의 이름을 지정하여이 경우 filename으로 만듭니다.

+0

어떻게 FNAME 헤더를 쓸 수 있습니까? PHP로 가능합니까 아니면 특별한 라이브러리가 필요합니까? – testing

+1

@testing ['gzencode()'] (http://php.net/manual/en/function.gzencode.php)에는 파일 이름 매개 변수가 없지만 다른 라이브러리에있을 수 있습니다. 하지만 왜 '. .gz'을 사용하는 사실상의 표준과 다른가요? – CodeCaster

+0

사양을 얻었고이를 이행해야합니다. 그러나 사양을 변경해야한다고 생각합니다 ... 그럼에도 불구하고 거기에 다른 라이브러리가 있는지 알면 좋습니다. – testing

관련 문제