이 기사의 예는 PHP의 ZipArchive 클래스 사용법을 설명하며 참고용으로 모든 사람과 공유됩니다. 세부 내용은 다음과 같습니다.
일반적으로 php5.2에서는 ZipArchive 클래스를 지원하기 시작하고 php4에서는 zip 기능만 사용할 수 있습니다. 실제로 zip 클래스가 공식적으로 구현되기 전에 일부 전문가는 이미 zip 파일을 패키징하고 압축을 푸는 방법을 제공했습니다. 이제 PHP에는 물론 가장 먼저 사용되는 ZipArchive 클래스가 포함되어 있습니다. 이 클래스를 사용하면 zip 파일을 생성하고 압축을 풀 수 있으며 zip 패키지의 내용을 직접 읽을 수도 있으므로 매우 편리합니다. 여기서는 읽기 및 압축 풀기 과정을 주로 요약합니다.
지정된 디렉터리에 패키지 추출:
$zip = 새로운 ZipArchive;
if ($zip->open('test.zip') === TRUE) {
$zip->extractTo('/my/destination/dir/');
$zip->close();
에코 '알았어';
} 그 밖의 {
echo '실패';
}
?>
패키지에 있는 파일의 내용만 읽으려면 파일 이름이나 파일의 인덱스 값이 필요합니다.
$zip = 새로운 ZipArchive;
if ($zip->open('test.zip') === TRUE) {
echo $zip->getFromName('example.php');
$zip->close();
}
?>
example.php가 특정 디렉터리에 있는 경우 콘텐츠를 검색할 때 경로를 추가해야 합니다.
파일 이름만 알고 파일의 구체적인 경로를 모르는 경우 지정된 파일 이름의 색인을 검색한 다음 색인에 의존하여 콘텐츠를 얻을 수 있습니다.
$zip = 새로운 ZipArchive;
if ($zip->open('test.zip') === TRUE) {
$index=$zip->locateName('example.php', ZIPARCHIVE::FL_NOCASE|ZIPARCHIVE::FL_NODIR);
$contents = $zip->getFromIndex($index);
}
?>
위에서 얻은 인덱스는 LocateName 메소드를 사용하는데, 압축된 패키지에 여러 경로에 같은 이름의 파일이 있는 경우 모든 파일의 인덱스를 얻으려면 첫 번째 파일의 인덱스만 반환하면 되는 것 같습니다. 동일한 이름을 사용하면 어리석은 방법만 사용하고 루프에서 검색할 수 있습니다.
$zip = 새로운 ZipArchive;
if ($zip->open('test.zip') === TRUE) {
for($i = 0; $i < $zip->numFiles; $i )
{
If(substr_count($zip->getNameIndex($i), 'example.php')>0){
$contents = $zip->getFromIndex($i);
}
}
}
?>
이 기사가 모든 사람의 PHP 프로그래밍 설계에 도움이 되기를 바랍니다.