PHP에서 zip 압축 파일을 처리하는 것은 일반적인 작업입니다. 특히 업로드 파일 또는 자동 아카이브를 처리 할 때 유용합니다. PHP의 zip 확장은 Zip 파일을 조작하기위한 완전한 API 세트를 제공하며, 여기서 Zip_Read ()는 zip 파일의 항목을 가로 지르는 데 사용되는 핵심 기능입니다. 이 기사는 Zip_Read () 함수를 사용하여 각 파일 내용을 ZIP 파일에서 하나씩 읽고 추출하는 방법을 보여줍니다.
시작하기 전에 PHP 환경에 지퍼 확장이 활성화되어 있는지 확인하십시오. 활성화 여부를 확인할 수 있습니다.
<?php
phpinfo();
?>
페이지에서 zip을 검색하면 존재하면 활성화됩니다. 그렇지 않은 경우 운영 체제에 따라 확장을 설치하고 활성화하십시오.
zip_read ()를 사용하는 기본 단계는 다음과 같습니다.
zip_open ()을 사용하여 zip 파일을 엽니 다.
zip_read ()를 사용하여 각 항목을 가로 지르십시오.
zip_entry_name ()을 사용하여 입력 이름을 얻으십시오.
zip_entry_open () 및 zip_entry_read ()를 사용하여 항목 내용을 읽으십시오.
선택 사항 : 추출 작업을 수행하기 위해 파일에 읽기 내용을 작성하십시오.
다음은 지정된 디렉토리에 zip 파일의 각 파일을 하나씩 읽고 추출하는 완전한 예입니다.
<?php
$zipFile = 'archive.zip'; // 파일이 현재 디렉토리에 있다고 가정하십시오
$extractTo = 'extracted_files/';
// 대상 디렉토리가 있는지 확인하십시오
if (!is_dir($extractTo)) {
mkdir($extractTo, 0755, true);
}
// 열려 있는 ZIP 문서
$zip = zip_open($zipFile);
if (is_resource($zip)) {
while ($zipEntry = zip_read($zip)) {
$entryName = zip_entry_name($zipEntry);
$entryPath = $extractTo . $entryName;
// 디렉토리 항목을 무시합니다,仅处理문서
if (substr($entryName, -1) === '/') {
continue;
}
// 尝试열려 있는条目
if (zip_entry_open($zip, $zipEntry, "r")) {
$entryContent = zip_entry_read($zipEntry, zip_entry_filesize($zipEntry));
// 디렉토리 구조가 있는지 확인하십시오
$dir = dirname($entryPath);
if (!is_dir($dir)) {
mkdir($dir, 0755, true);
}
// 写入到문서
file_put_contents($entryPath, $entryContent);
// 선택 과목:输出当前处理的문서
echo "已提取문서: $entryName<br>";
zip_entry_close($zipEntry);
}
}
zip_close($zip);
echo "ZIP 문서处理完成。";
} else {
echo "无法열려 있는 ZIP 문서。";
}
?>
Zip_Read ()는 한 번에 하나의 항목을 읽고 모든 항목을 읽으려면 루프에서 여러 번 호출해야합니다.
zip_entry_filesize ()를 사용하여 파일 크기를 통해 전체 컨텐츠를 읽으십시오.
항목의 내용을 읽으려면 zip_entry_open ()을 사용해야합니다.
ZIP 파일에 여러 개의 디렉토리가있는 경우, 추출 전에 디렉토리 구조가 있는지 확인하십시오.
온라인 문서 감압 처리 : 압축 패키지를 업로드 한 후 서버 별 디렉토리로 자동으로 압축 해제합니다.
배치 이미지 처리 : 사용자가 업로드 한 zip 파일에서 사진을 닫고 후속 처리를 위해 / 업로드 / 디렉토리에 저장하십시오.
컨텐츠 백업 및 복원 : 시스템은 데이터 백업을 자동으로 패키지하고 파일 별 추출 및 복구를 지원합니다.