Zip 압축

Zip 압축

Zip 확장은 ZIP 압축 아카이브와 그 안의 파일들을 투명하게 읽고 쓸 수 있게 해 주는 확장이에요. 압축·해제 세부 사항은 내부에서 처리되니 아카이브를 자연스럽게 다룰 수 있어요.

출처: PHP: Zip - Manual

본문

이 확장은 ZIP으로 압축된 아카이브와 그 안의 파일들을 투명하게 읽거나 쓸 수 있게 해 줘요. ZipArchive 클래스를 중심으로 아카이브를 열고, 파일을 추가·추출하고, 압축 방식과 암호화까지 다룰 수 있어요.

ZipArchive 클래스

ZipArchive는 ZIP 아카이브를 다루는 주요 클래스로, 메서드가 아주 많아요. 핵심적인 것들만 정리하면 이래요.

파일 추가·삭제

  • ZipArchive::addEmptyDir, addFile, addFromString — 디렉터리·파일 추가
  • ZipArchive::addGlob, addPattern — glob/PCRE 패턴으로 파일 추가
  • ZipArchive::deleteIndex, deleteName — 항목 삭제
  • ZipArchive::renameIndex, renameName — 항목 이름 변경
  • ZipArchive::replaceFile — 파일 교체

열기·닫기·추출

  • ZipArchive::open — ZIP 파일 아카이브 열기
  • ZipArchive::close — 활성 아카이브 닫기
  • ZipArchive::extractTo — 아카이브 내용 추출

읽기·정보

  • ZipArchive::getFromIndex, getFromName — 항목 내용 반환
  • ZipArchive::statIndex, statName — 항목 상세 정보
  • ZipArchive::getNameIndex, locateName — 이름/인덱스 조회
  • ZipArchive::count — 아카이브 안 파일 수
  • ZipArchive::getStream — 항목의 파일 핸들러 획득

설정·변경

  • ZipArchive::setCompressionIndex, setCompressionName — 압축 방법 설정
  • ZipArchive::setEncryptionIndex, setEncryptionName — 암호화 방법 설정
  • ZipArchive::setPassword — 활성 아카이브의 비밀번호 설정
  • ZipArchive::setCommentIndex, setCommentName, setArchiveComment — 주석 설정
  • ZipArchive::unchangeAll, unchangeArchive — 변경 사항 되돌리기

지원 확인

  • ZipArchive::isCompressionMethodSupported — libzip이 압축 방법을 지원하는지 확인
  • ZipArchive::isEncryptionMethodSupported — 암호화 방법을 지원하는지 확인

콜백

  • ZipArchive::registerProgressCallback, registerCancelCallback — 닫기 중 진행/취소 콜백 등록

Zip 함수 (절차형)

ZipArchive 클래스가 생기기 전의 레거시 절차형 함수들도 남아 있어요.

  • zip_open — ZIP 파일 아카이브 열기
  • zip_close — ZIP 파일 아카이브 닫기
  • zip_read — 아카이브에서 다음 항목 읽기
  • zip_entry_open, zip_entry_read, zip_entry_close — 특정 항목 열기·읽기·닫기
  • zip_entry_name — 항목 이름 반환
  • zip_entry_compressedsize — 압축된 크기 반환
  • zip_entry_compressionmethod — 압축 방법 반환
  • zip_entry_filesize — 실제 파일 크기 반환

더 알아보기