zip_entry_read() 함수는 이미 열려 있는 ZIP 아카이브 파일에서 해당 항목(entry)의 내용을 읽어오는 데 사용되는 PHP 내장 함수입니다. 이 함수는 zip_open(), zip_read(), zip_entry_open()과 함께 사용되며, ZIP 파일 내부에 압축된 개별 파일의 실제 데이터를 문자열 형태로 가져올 수 있습니다.
문법
zip_entry_read(zip_entry, len)
매개변수
zip_entry − 읽어올 대상인 ZIP 항목 리소스입니다. 필수 매개변수입니다.
len − 한 번에 읽어올 바이트(byte) 단위의 길이입니다. 기본값은 1024바이트이며, 생략할 수 있습니다.
반환 값
zip_entry_read() 함수는 성공적으로 실행되면 열려 있는 ZIP 아카이브 항목의 내용을 문자열(string)로 반환합니다. 읽기에 실패하거나 더 이상 남은 데이터가 없으면 FALSE를 반환합니다.
사용 예시
다음은 실제 동작 예시입니다. 예를 들어 ZIP 파일 "one.zip" 안에는 하나의 파일, 즉 아래와 같은 내용을 담고 있는 "detail.txt"가 있다고 가정해 보겠습니다.
Asia is a continent!
이 ZIP 파일을 열어 내용을 읽어오는 코드는 다음과 같습니다.
예제
<?php
$zip_file = zip_open("one.zip");
if ($zip_file) {
while ($zip_entry = zip_read($zip_file)) {
if (zip_entry_open($zip_file, $zip_entry)) {
echo "파일 안의 텍스트 = <br/>";
echo zip_entry_read($zip_entry) . "<br />";
zip_entry_close($zip_entry);
}
}
zip_close($zip_file);
}
?>
참고: 원본 예제 코드의 zip_read($zip) 부분은 올바른 변수가 아니므로, 정상적으로 동작하도록 zip_read($zip_file)로 수정했습니다. 또한 항목의 내용을 출력하려면 zip_entry_read()의 반환 값을 직접 echo로 출력해야 합니다.
출력 결과
파일 안의 텍스트 =
Asia is a continent!
함수 사용 순서 요약
- 1단계:
zip_open()으로 ZIP 파일을 엽니다. - 2단계:
zip_read()로 ZIP 내부의 항목을 하나씩 가져옵니다. - 3단계:
zip_entry_open()으로 해당 항목을 읽기 가능한 상태로 엽니다. - 4단계:
zip_entry_read()로 항목의 내용을 읽어옵니다. - 5단계:
zip_entry_close()와zip_close()로 리소스를 닫습니다.
참고: 위의 zip 확장 함수들은 PHP 7.3까지 제공되었으며, PHP 7.4부터는 제거되었습니다. 최신 PHP 환경에서는 객체 지향 방식의 ZipArchive 클래스(ZipArchive::getFromIndex() 등)를 사용하는 것이 권장됩니다.