PHP에서 zip 파일을 처리 할 때 Zip_Read 함수를 사용하여 ZIP 파일의 모든 파일 항목을 읽을 수 있습니다. 이 기능을 통해 zip 파일의 컨텐츠를 하나씩 읽고 암호화 또는 캐시 작업과 같은 읽기 내용을 일시적으로 처리 할 수 있습니다. 이 기사는 Zip_Read 함수와 함께 이러한 기능을 구현하는 방법을 자세히 소개합니다.
Zip_Read 함수를 사용하기 전에 PHP가 설치되어 Zip 확장을 활성화해야합니다. 다음과 같이 확인할 수 있습니다.
<?php
if (class_exists('ZipArchive')) {
echo "Zip확장 활성화";
} else {
echo "활성화하십시오Zip펼친";
}
?>
Zip_Read 함수는 ZIP 리소스의 다음 항목을 읽는 데 사용됩니다. zip_open 및 zip_entry_read 와 함께 zip 파일의 모든 파일을 통과 할 수 있습니다.
일반적인 사용 예제는 다음과 같습니다.
<?php
$zip = zip_open('http://m66.net/path/to/file.zip');
if (is_resource($zip)) {
while ($entry = zip_read($zip)) {
$name = zip_entry_name($entry);
zip_entry_open($zip, $entry);
$content = zip_entry_read($entry, zip_entry_filesize($entry));
zip_entry_close($entry);
// 여기 괜찮아요$content처리를 수행하십시오,예를 들어 암호화 또는 캐시
}
zip_close($zip);
}
?>
우리가 읽은 내용에 대해 간단한 AES 암호화를 수행하고 싶다고 가정하면 샘플 코드는 다음과 같습니다.
<?php
$cacheDir = '/tmp/zip_cache/';
if (!is_dir($cacheDir)) {
mkdir($cacheDir, 0755, true);
}
$zip = zip_open('http://m66.net/path/to/file.zip');
if (is_resource($zip)) {
while ($entry = zip_read($zip)) {
$name = zip_entry_name($entry);
$cacheFile = $cacheDir . md5($name) . '.cache';
if (file_exists($cacheFile)) {
$content = file_get_contents($cacheFile);
} else {
zip_entry_open($zip, $entry);
$content = zip_entry_read($entry, zip_entry_filesize($entry));
zip_entry_close($entry);
file_put_contents($cacheFile, $content);
}
// 여기$content즉, 캐시 된 콘텐츠입니다,계속 처리 할 수 있습니다
}
zip_close($zip);
}
?>