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

PHP zip_entry_read() 함수 – 열린 ZIP 아카이브에서 파일 내용 읽기

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() 등)를 사용하는 것이 권장됩니다.