Computer >> 컴퓨터 >  >> 프로그램 작성 >> PHP

PHP를 사용하여 gzip 파일을 어떻게 추출하거나 압축을 풀 수 있습니까?

<시간/>

압축된 파일은 PHP의 gzread 기능을 사용하여 압축을 풀거나 압축을 풀 수 있습니다. 다음은 동일한 코드 예제입니다 -

예시

$file_name = name_of/.dump.gz';
$buffer_size = 4096; // The number of bytes that needs to be read at a specific time, 4KB here
$out_file_name = str_replace('.gz', '', $file_name);
$file = gzopen($file_name, 'rb'); //Opening the file in binary mode
$out_file = fopen($out_file_name, 'wb');
// Keep repeating until the end of the input file
while (!gzeof($file)) {
   fwrite($out_file, gzread($file, $buffer_size)); //Read buffer-size bytes.
}
fclose($out_file); //Close the files once they are done with
gzclose($file);

출력

이것은 다음과 같은 출력을 생성합니다 -

The uncompressed data which is extracted by unzipping the zipped file.

압축 파일의 경로는 'file_name'이라는 변수에 저장됩니다. 한 번에 읽어야 하는 바이트 수는 고정되어 'buffer_size'라는 변수에 할당됩니다. 출력 파일의 확장자는 .gz가 아니므로 출력 파일 이름은 'out_file_name'이라는 변수에 저장됩니다.

'out_file_name'은 추출된 zip 파일에서 읽은 후 내용을 추가하기 위해 쓰기 바이너리 모드에서 열립니다. 'file_name'은 읽기 모드로 열리고 'gzread' 함수를 사용하여 내용을 읽고 추출된 내용은 'out_file'에 기록됩니다. 파일의 끝까지 내용을 읽을 수 있도록 while 루프가 실행됩니다.