zip 압축 파일을 처리 할 때 PHP는 매우 편리한 기능 인터페이스 세트를 제공합니다. zip_entry_compressedsize () 는 개발자가 압축 파일에서 "압축 데이터 크기"를 읽는 데 도움이되는 기능 중 하나입니다. 이 기사는 Zip_Read () 함수를 결합하여 압축 파일 및 관련 압축 정보의 내용을 효과적으로 읽는 방법을 보여줍니다.
zip_entry_compressedsize () 는 zip 파일에서 단일 항목의 압축 크기를 얻는 데 사용되는 함수입니다. 이 함수는 Zip_Read () 에 의해 리턴 된 리소스 핸들을 매개 변수로 취하고 해당 압축 항목의 압축 크기 (바이트)를 반환합니다.
기능 프로토 타입은 다음과 같습니다.
int zip_entry_compressedsize(resource $zip_entry)
이 기능의 일반적인 사용은 압축 파일 항목을 통해 반복 할 때 각 파일의 압축 바이트 수를 얻는 것입니다.
다음 코드를 예제로 사용하여 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";
}
zip_open () : zip 파일을 엽니 다.
Zip_Read () : Zip에서 다음 항목 (예 : 파일 또는 디렉토리)을 읽습니다.
zip_entry_compressedsize () : 항목의 압축 크기를 가져옵니다.
zip_entry_filesize () : 항목의 원래 크기를 가져옵니다.
zip_entry_open () 및 zip_entry_read () : 파일 내용을 읽으십시오.
압축 전후 크기를 압축하여 압축 속도를 계산할 수 있습니다.
$compressed = zip_entry_compressedsize($zip_entry);
$original = zip_entry_filesize($zip_entry);
$rate = $original > 0 ? round(($compressed / $original) * 100, 2) : 0;
echo "압축률: $rate%\n";
압축 크기에 따라 큰 파일 또는 높은 압축 비율 파일을 신속하게 필터링 할 수 있습니다.
if (zip_entry_compressedsize($zip_entry) > 1024 * 100) {
echo "这是一个大문서,압축 후 100KB。\n";
}
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);
}
이 기능은 일부 이전 버전의 PHP에서 호환성 문제가 있습니다. Zip_* 시리즈 기능을 대체하기 위해 PHP 7 이상의 ZipACHIVE 클래스를 사용하는 것이 좋습니다. 그러나 일부 시나리오에서는 Zip_entry_compressedSize ()가 더 직관적입니다.
많은 항목이 포함 된 압축 패키지를 처리 할 때는 리소스 누출 또는 서버 충돌을 피하기 위해 메모리 관리 및 오류 처리를 수행하는 것이 좋습니다.
zip_entry_compressedsize () 와 Zip_read () 의 조합을 통해 개발자는 로그 분석, 원격 패킷 컨텐츠 추출, 온라인 감압 서비스 및 기타 응용 프로그램에 적합한 압축 패키지로 자세한 정보를 쉽게 읽을 수 있습니다. 이러한 기본 도구를 마스터하면 PHP 파일 처리에 더 능숙 해집니다.