[php] PHP의 ZipArchive 클래스 사용하기

PHP에서 파일 및 디렉터리를 압축하고 해제하는 작업은 흔한 작업입니다. PHP는 Zip 파일을 다루는 표준 라이브러리를 제공하는데, 이를 위해 ZipArchive 클래스를 사용할 수 있습니다.

이 포스트에서는 PHP의 ZipArchive 클래스를 사용하여 파일과 디렉터리를 압축하고 해제하는 방법에 대해 알아보겠습니다.

ZipArchive 클래스 소개

ZipArchive 클래스는 PHP에 기본으로 포함된 클래스로, Zip 파일을 만들거나 열어서 파일을 추가하거나 추출하는 기능을 제공합니다. 이 클래스를 사용하여 PHP 애플리케이션에서 Zip 파일을 생성하고 관리할 수 있습니다.

Zip 파일 생성하기

우선 Zip 파일을 생성하는 방법부터 알아보겠습니다. 아래의 예제 코드는 ZipArchive 클래스를 사용하여 “example.zip”이라는 이름의 Zip 파일을 생성하고, “file1.txt”과 “file2.txt”라는 두 개의 파일을 추가하는 예제입니다.

<?php
// Zip 파일 생성
$zip = new ZipArchive;
if ($zip->open('example.zip', ZipArchive::CREATE) === TRUE) {
  // 파일 추가
  $zip->addFile('file1.txt', 'file1.txt');
  $zip->addFile('file2.txt', 'file2.txt');
  // Zip 파일 닫기
  $zip->close();
  echo 'Zip 파일이 생성되었습니다.';
} else {
  echo 'Zip 파일을 생성할 수 없습니다.';
}
?>

Zip 파일 압축 해제하기

이번에는 Zip 파일을 압축 해제하는 방법에 대해 알아보겠습니다. 아래의 예제 코드는 “example.zip”이라는 Zip 파일을 열고, 내부의 파일을 “extract_folder”라는 디렉터리에 추출하는 예제입니다.

<?php
// Zip 파일 열기
$zip = new ZipArchive;
if ($zip->open('example.zip') === TRUE) {
  // 압축 해제
  $zip->extractTo('extract_folder/');
  // Zip 파일 닫기
  $zip->close();
  echo 'Zip 파일이 성공적으로 압축 해제되었습니다.';
} else {
  echo 'Zip 파일을 열 수 없거나 압축 해제할 수 없습니다.';
}
?>

이제 PHP에서 Zip 파일을 생성하고 관리하는 방법에 대해 알아보았습니다. ZipArchive 클래스를 이용하면 PHP 애플리케이션에서 손쉽게 Zip 파일을 다룰 수 있습니다.

더 자세한 정보는 PHP 공식 문서에서 ZipArchive 클래스에 대해 확인할 수 있습니다.