이 확장 프로그램을 사용하면 ZIP 아카이브와 그 안에 있는 파일을 투명하게 읽고 쓸 수 있습니다.
PHP5.2 이후 이 기능을 사용하려면 PHP를 컴파일할 때 --enable-zip 구성 옵션을 사용하여 zip 지원을 제공해야 합니다.
예시 #1 Zip 아카이브 생성
<?php $zip = new ZipArchive(); $filename = "./test112.zip"; if ($zip->open($filename, ZIPARCHIVE::CREATE)!==TRUE) { exit("cannot open <$filename>\n"); } $zip->addFromString("testfilephp.txt" . time(), "#1 This is a test string added as testfilephp.txt.\n"); $zip->addFromString("testfilephp2.txt" . time(), "#2 This is a test string added as testfilephp2.txt.\n"); $zip->addFile($thisdir . "/too.php","/testfromfile.php"); echo "numfiles: " . $zip->numFiles . "\n"; echo "status:" . $zip->status . "\n"; $zip->close(); ?>
예시 #2 출력 문서 세부 정보 및 목록
<?php $za = new ZipArchive(); $za->open('test_with_comment.zip'); print_r($za); var_dump($za); echo "numFiles: " . $za->numFiles . "\n"; echo "status: " . $za->status . "\n"; echo "statusSys: " . $za->statusSys . "\n"; echo "filename: " . $za->filename . "\n"; echo "comment: " . $za->comment . "\n"; for ($i=0; $i<$za->numFiles;$i++) { echo "index: $i\n"; print_r($za->statIndex($i)); } echo "numFile:" . $za->numFiles . "\n"; ?>
예시 #3 Zip 스트림 캡슐화, OpenOffice 파일 읽기 메타 정보
<?php $reader = new XMLReader(); $reader->open('zip://' . dirname(__FILE__) . '/test.odt#meta.xml'); $odt_meta = array(); while ($reader->read()) { if ($reader->nodeType == XMLREADER::ELEMENT) { $elm = $reader->name; } else { if ($reader->nodeType == XMLREADER::END_ELEMENT && $reader->name == 'office:meta') { break; } if (!trim($reader->value)) { continue; } $odt_meta[$elm] = $reader->value; } } print_r($odt_meta); ?>
이 예제에서는 ZIP 파일 아카이브를 열고 아카이브의 각 파일을 읽고 파일 내용을 출력하는 이전 API(PHP 4)를 사용합니다. 이 예제에 사용된 test2.zip 파일은 ZZIPlib 소스 배포판의 테스트 파일 중 하나입니다.
예 #4 Zip 사용 예
<?php $zip = zip_open("/tmp/test2.zip"); if ($zip) { while ($zip_entry = zip_read($zip)) { echo "Name: " . zip_entry_name($zip_entry) . "\n"; echo "Actual Filesize: " . zip_entry_filesize($zip_entry) . "\n"; echo "Compressed Size: " . zip_entry_compressedsize($zip_entry) . "\n"; echo "Compression Method: " . zip_entry_compressionmethod($zip_entry) . "\n"; if (zip_entry_open($zip, $zip_entry, "r")) { echo "File Contents:\n"; $buf = zip_entry_read($zip_entry, zip_entry_filesize($zip_entry)); echo "$buf\n"; zip_entry_close($zip_entry); } echo "\n"; } zip_close($zip); } ?>
ZipArchive 클래스
ZipArchive::addEmptyDir — 새 디렉터리 추가
ZipArchive::addFile — 추가 지정된 경로의 ZIP 아카이브에 파일
ZipArchive::addFromString — 해당 내용을 사용하여 ZIP 아카이브에 파일 추가
ZipArchive::addGlob — 글로벌 패턴으로 디렉터리에서 파일 추가
ZipArchive::addPattern — PCRE 패턴으로 디렉터리에서 파일 추가
ZipArchive::close — 활성 아카이브 닫기(열렸거나 새로 생성됨)
ZipArchive::deleteIndex — 인덱스를 사용하여 아카이브에서 항목 삭제
ZipArchive::deleteName — 이름을 사용하여 아카이브에서 항목 삭제
ZipArchive::extractTo — 아카이브 내용 추출
ZipArchive::getArchiveComment — Zip 아카이브 주석을 반환합니다.
ZipArchive::getCommentIndex — 항목 인덱스를 사용하여 항목의 주석을 반환합니다.
ZipArchive::getCommentName — 다음을 사용하여 항목의 주석을 반환합니다. 항목 이름
ZipArchive::getFromIndex — 인덱스를 사용하여 항목 내용을 반환합니다
ZipArchive::getFromName — 해당 이름을 사용하여 항목 내용을 반환합니다
ZipArchive::getNameIndex — 인덱스를 사용하여 항목 이름을 반환합니다.
ZipArchive::getStatusString — 상태 오류 메시지, 시스템 및/또는 zip 메시지를 반환합니다.
ZipArchive::getStream — 항목에 대한 파일 처리기를 가져옵니다. 이름으로 정의됨(읽기 전용).
ZipArchive::locateName — 아카이브에 있는 항목의 인덱스를 반환합니다
ZipArchive::open — ZIP 파일 아카이브 열기
ZipArchive::renameIndex — 인덱스로 정의된 항목의 이름을 바꿉니다
ZipArchive::renameName — 이름으로 정의된 항목의 이름을 바꿉니다
ZipArchive::setArchiveComment — ZIP 아카이브의 주석 설정
ZipArchive::setCommentIndex — 인덱스로 정의된 항목의 설명 설정
ZipArchive::setCommentName — 이름으로 정의된 항목의 설명 설정
ZipArchive:: statIndex — 인덱스로 정의된 항목의 세부 정보를 가져옵니다.
ZipArchive::statName — 이름으로 정의된 항목의 세부 정보를 가져옵니다.
ZipArchive::unchangeAll — 완료된 모든 변경 사항을 취소합니다. 아카이브
ZipArchive::unchangeArchive — 아카이브에서 수행된 모든 전역 변경 사항을 되돌립니다.
ZipArchive::unchangeIndex — 지정된 인덱스의 항목에 대해 수행된 모든 변경 사항을 되돌립니다
ZipArchive::unchangeName — 지정된 이름을 가진 항목에 대한 모든 변경 사항을 되돌립니다.
관련 기능
zip_close — ZIP 파일 아카이브 닫기
zip_entry_close — 디렉토리 닫기 항목
zip_entry_compressedsize — 디렉터리 항목의 압축 크기 검색
zip_entry_name — 디렉터리 항목 이름 검색
zip_entry_open — 읽을 디렉터리 항목 열기
zip_entry_read — 열린 디렉터리 항목에서 읽기
zip_open — ZIP 파일 아카이브 열기
zip_read — ZIP 파일 아카이브에서 다음 항목 읽기