PHP의 zip_entry_compressed_size() 함수는 ZIP 아카이브 내 특정 항목(엔트리)이 압축된 상태에서 차지하는 파일 크기를 바이트 단위로 반환합니다. 이 함수는 zip_read()로 읽어온 개별 ZIP 항목 리소스를 인자로 받아 사용하며, 압축 전 원본 크기와 비교해 압축률을 계산할 때도 유용하게 활용됩니다.
문법
zip_entry_compressed_size(zip_entry)
매개변수
zip_entry – 크기를 확인하려는 ZIP 항목 리소스입니다. zip_read()가 반환한 값을 사용하며, 필수 매개변수입니다.
반환값
지정한 ZIP 항목의 압축된 상태의 파일 크기(바이트)를 반환합니다.
참고로, 압축되기 전의 원본 파일 크기를 알고 싶다면 zip_entry_filesize() 함수를 사용하면 됩니다.
아래는 "new.zip" 아카이브에 포함된 각 파일의 압축 크기를 출력하는 예제입니다.
예제
<?php
$zip = zip_open("new.zip");
if ($zip) {
while ($zip_entry = zip_read($zip)) {
echo "Compressed = ". zip_entry_compressed_size($zip_entry). "<br />";
}
zip_close($zip);
}
?>실행 결과
Compressed = 90
Compressed = 12
Compressed = 67
위 코드는 ZIP 파일을 열어 각 항목을 하나씩 읽으면서 해당 항목의 압축 크기를 화면에 출력합니다. 모든 작업이 끝나면 반드시 zip_close()를 호출하여 열려 있던 ZIP 리소스를 닫아 주는 것이 좋습니다.