현재 위치: > 최신 기사 목록> zip_entry_read ()를 사용하여 현재 zip 항목의 내용을 읽으십시오.

zip_entry_read ()를 사용하여 현재 zip 항목의 내용을 읽으십시오.

M66 2025-06-06

php에서 압축 파일을 처리 할 때 zip_read ()zip_entry_read ()는 zip 파일의 내용을 읽는 데 도움이되는 두 가지 매우 유용한 기능입니다. 이 기사는이 두 기능을 조합하여 항목별로 ZIP 압축 패키지 항목의 각 항목의 내용을 읽고 출력하는 방법을 자세히 설명합니다.


1. 기능 소개

  • Zip_Read (Resource $ Zip)
    이 함수는 열린 ZIP 리소스를 수용하고 ZIP의 현재 항목을 나타내는 Zip 항목을 가리키는 리소스를 반환합니다. 모든 항목을 읽으면 False가 반환됩니다.

  • zip_entry_read (자원 $ zip_entry, int $ len = 1024)
    이 함수는 지정된 길이의 현재 지퍼 항목의 내용을 읽습니다. 현재 지퍼 항목에 의해 읽을 자원의 수와 수를 전달해야합니다.


2. 샘플 코드 설명

다음 샘플 코드는 zip 파일을 열고 모든 항목을 반복하고 각 항목의 내용을 출력하는 방법을 보여줍니다.

 <?php
// a Zip 문서,경로 예:http://m66.net/example.zip
$zip = zip_open('http://m66.net/example.zip');

if (!$zip) {
    echo "열 수 없습니다 Zip 문서。";
    exit;
}

// 트래버스 Zip 모든 항목
while ($zip_entry = zip_read($zip)) {
    // 입장 이름을 얻으십시오
    $entry_name = zip_entry_name($zip_entry);
    echo "항목을 읽습니다: $entry_name\n";

    // 콘텐츠를 읽으려면 현재 항목을 엽니 다
    if (zip_entry_open($zip, $zip_entry)) {
        $content = '';
        
        // 循环항목을 읽습니다内容,한 번에 읽기에 너무 큰 콘텐츠를 피하십시오
        while ($data = zip_entry_read($zip_entry, 1024)) {
            $content .= $data;
        }

        // 출력 입력 컨텐츠
        echo "내용은 다음과 같습니다:\n";
        echo $content . "\n";

        // 현재 항목을 닫으십시오
        zip_entry_close($zip_entry);
    } else {
        echo "열 수 없습니다条目 $entry_name 읽기를 수행하십시오。\n";
    }

    echo "------------------------\n";
}

// 폐쇄 Zip 의지
zip_close($zip);
?>

3. 코드 설명

  • zip_open () 함수는 zip 파일을 열거나 로컬 경로를 지원하거나 원격 URL (예 : 예제에서 http://m66.net/example.zip ) 일 수 있습니다.

  • zip_read () 루프를 통해 각 항목을 읽으십시오.

  • 각 항목에서 zip_entry_open ()을 호출하여 열 수 있습니다. 그런 다음 Zip_entry_read ()를 사용하여 내용을 읽습니다. 여기에서는 1024 바이트를 한 번에 읽고 내용이 완료 될 때까지 루프됩니다.

  • 읽은 후 항목을 닫고 마지막으로 전체 zip 파일 리소스를 닫으십시오.


4. 주목할만한 것들

  • PHP의 Zip_Read 기능은 ZIP 확장에 의존하여 환경에서 확장이 활성화되었는지 확인합니다.

  • 원격 URL 액세스를 위해서는 서버가 allow_url_fopen을 지원해야합니다.

  • 큰 파일의 경우 메모리 오버플로를 피하기 위해 읽기 블록 크기를 합리적으로 제어하는 ​​것이 좋습니다.

  • 이 방법은 텍스트 파일 또는 작은 이진 파일을 읽는 데 적합합니다. 복잡한 ZIP 작업의 경우 ZipAchive 클래스 사용을 고려할 수 있습니다.