현재 위치: > 최신 기사 목록> zip_entry_compressedsize ()를 사용하는 방법? Zip_Read 기능으로 압축 파일을 읽기위한 실용적인 팁

zip_entry_compressedsize ()를 사용하는 방법? Zip_Read 기능으로 압축 파일을 읽기위한 실용적인 팁

M66 2025-06-26

zip 압축 파일을 처리 할 때 PHP는 매우 편리한 기능 인터페이스 세트를 제공합니다. zip_entry_compressedsize () 는 개발자가 압축 파일에서 "압축 데이터 크기"를 읽는 데 도움이되는 기능 중 하나입니다. 이 기사는 Zip_Read () 함수를 결합하여 압축 파일 및 관련 압축 정보의 내용을 효과적으로 읽는 방법을 보여줍니다.

1. zip_entry_compressedsize 란?

zip_entry_compressedsize () 는 zip 파일에서 단일 항목의 압축 크기를 얻는 데 사용되는 함수입니다. 이 함수는 Zip_Read () 에 의해 리턴 된 리소스 핸들을 매개 변수로 취하고 해당 압축 항목의 압축 크기 (바이트)를 반환합니다.

기능 프로토 타입은 다음과 같습니다.

 int zip_entry_compressedsize(resource $zip_entry)

이 기능의 일반적인 사용은 압축 파일 항목을 통해 반복 할 때 각 파일의 압축 바이트 수를 얻는 것입니다.

2. Zip_Read ()와 함께 사용하기위한 완전한 예제

다음 코드를 예제로 사용하여 ZIP 파일을 열고 항목을 하나씩 읽고 각 파일의 압축 크기를 가져 오십시오.

 $zipPath = '/path/to/example.zip';

$zip = zip_open($zipPath);
if (is_resource($zip)) {
    while ($zip_entry = zip_read($zip)) {
        echo "파일 이름: " . zip_entry_name($zip_entry) . "\n";
        echo "압축 크기: " . zip_entry_compressedsize($zip_entry) . " 바이트\n";
        echo "원래 크기: " . zip_entry_filesize($zip_entry) . " 바이트\n";
        
        if (zip_entry_open($zip, $zip_entry)) {
            $contents = zip_entry_read($zip_entry, zip_entry_filesize($zip_entry));
            // 내용은 여기에서 처리 할 수 ​​있습니다,예를 들어 저장 또는 분석
            zip_entry_close($zip_entry);
        }
        
        echo "-----------------------------\n";
    }
    zip_close($zip);
} else {
    echo "열 수 없습니다 ZIP 문서。\n";
}

설명 :

3. 사용 시나리오의 예

1. 압축 비율을 표시합니다

압축 전후 크기를 압축하여 압축 속도를 계산할 수 있습니다.

 $compressed = zip_entry_compressedsize($zip_entry);
$original = zip_entry_filesize($zip_entry);
$rate = $original > 0 ? round(($compressed / $original) * 100, 2) : 0;
echo "압축률: $rate%\n";

2. 파일 필터링 및 분류

압축 크기에 따라 큰 파일 또는 높은 압축 비율 파일을 신속하게 필터링 할 수 있습니다.

 if (zip_entry_compressedsize($zip_entry) > 1024 * 100) {
    echo "这是一个大문서,압축 후 100KB。\n";
}

4. 실제 사례 : 원격 지퍼 파일에서 내용을 읽습니다

zip 파일이 https://m66.net/files/archive.zip 과 같은 리모컨에서 나온 경우 먼저 File_get_Contents ()를 사용하여 로컬 임시 디렉토리로 다운로드 한 다음 처리 할 수 ​​있습니다.

 $tempFile = tempnam(sys_get_temp_dir(), 'zip');
file_put_contents($tempFile, file_get_contents('https://m66.net/files/archive.zip'));

$zip = zip_open($tempFile);
if (is_resource($zip)) {
    // 다음 논리는 위와 동일합니다
    zip_close($zip);
    unlink($tempFile);
}

5. 주목할만한 것들

  • 이 기능은 일부 이전 버전의 PHP에서 호환성 문제가 있습니다. Zip_* 시리즈 기능을 대체하기 위해 PHP 7 이상의 ZipACHIVE 클래스를 사용하는 것이 좋습니다. 그러나 일부 시나리오에서는 Zip_entry_compressedSize ()가 더 직관적입니다.

  • 많은 항목이 포함 된 압축 패키지를 처리 ​​할 때는 리소스 누출 또는 서버 충돌을 피하기 위해 메모리 관리 및 오류 처리를 수행하는 것이 좋습니다.

6. 결론

zip_entry_compressedsize ()Zip_read () 의 조합을 통해 개발자는 로그 분석, 원격 패킷 컨텐츠 추출, 온라인 감압 서비스 및 기타 응용 프로그램에 적합한 압축 패키지로 자세한 정보를 쉽게 읽을 수 있습니다. 이러한 기본 도구를 마스터하면 PHP 파일 처리에 더 능숙 해집니다.