Computer >> 컴퓨터 >  >> 프로그래밍 >> PHP

PHP로 ZIP 아카이브 내부의 단일 파일을 읽는 방법

PHP에서 ZIP 아카이브 안의 특정 파일만 읽기

PHP에서는 전체 압축 파일을 풀지 않고도 zip:// 스트림 래퍼를 활용해 ZIP 아카이브 내부에 있는 단일 파일의 내용을 직접 읽어올 수 있습니다. 이 방법은 압축 해제 과정 없이 필요한 파일 하나만 빠르게 확인해야 할 때 매우 유용합니다.

코드 예제

ZIP 아카이브 내의 단일 파일을 읽는 코드는 다음과 같습니다.

$handle = fopen('zip://test.zip#test.txt', 'r');
$result = '';
while (!feof($handle)) {
    $result .= fread($handle, 8192);
}
fclose($handle);
echo $result;

코드 설명

fopen('zip://test.zip#test.txt', 'r') 부분이 핵심입니다. zip:// 프로토콜 뒤에 ZIP 파일 경로를 지정하고, # 기호 다음에 아카이브 내부에서 읽고자 하는 파일명을 붙여주면 해당 파일에 대한 스트림 핸들이 열립니다.

이후 while (!feof($handle)) 반복문을 통해 파일 끝(EOF)에 도달할 때까지 한 번에 8192바이트씩 데이터를 읽어 $result 변수에 이어 붙입니다. 마지막으로 fclose()로 핸들을 닫아 리소스를 해제하고, echo로 결과를 출력합니다.

실행 결과

위 코드를 실행하면 출력 결과로 ZIP 파일 내부에 있는 test.txt의 전체 내용이 화면에 표시됩니다. 별도의 압축 해제 작업 없이 원하는 파일의 내용만 곧바로 가져올 수 있다는 점이 이 방식의 가장 큰 장점입니다.