[php] PHP에서 ZIP 파일을 생성할 때 중복 파일 처리하기

파일을 압축하여 ZIP 파일을 생성할 때, 중복된 파일명을 가진 파일이 있을 수 있습니다. 이때 이를 효과적으로 처리하기 위해 PHP에서는 몇 가지 방법을 제공합니다.

본 포스트에서는 PHP 내장 함수를 사용하여 ZIP 파일을 생성하고, 중복 파일명 처리하는 방법을 살펴보겠습니다.

1. ZIPArchive 클래스를 사용하여 중복 파일 처리하기

PHP에서 ZIP 파일을 생성할 때 중복된 파일을 처리하는 방법 중 하나는 ZIPArchive 클래스를 사용하는 것입니다. 이 클래스는 파일을 ZIP 아카이브로 만들거나 열 수 있도록 해줍니다.

아래는 ZIPArchive 클래스를 사용하여 중복 파일 처리하는 예제 코드입니다.

$zip = new ZipArchive();
$zipFileName = 'example.zip';

if ($zip->open($zipFileName, ZipArchive::CREATE) === TRUE) {
    $files = ['file1.txt', 'file2.txt', 'file1.txt'];  // 중복 파일명을 가진 파일이 존재함

    foreach ($files as $file) {
        if (file_exists($file)) {
            $validFileName = uniqid() . '_' . $file;  // 중복 파일명에 고유한 값 추가
            $zip->addFile($file, $validFileName);
        }
    }

    $zip->close();
    echo 'ZIP 파일이 생성되었습니다.';
} else {
    echo 'ZIP 파일을 생성하는 데 실패했습니다.';
}

위 예제 코드에서는 addFile() 메서드를 사용하여 ZIP 파일 내에 파일을 추가하고, 중복된 파일명을 가진 파일을 추가할 때에는 uniqid() 함수를 사용하여 파일명에 고유한 값을 추가합니다.

2. ZipArchive를 활용하여 중복 파일명 처리 이점

ZIPArchive 클래스를 사용하여 중복 파일명을 처리하면 아래와 같은 이점이 있습니다.

마치며

이상으로 PHP에서 ZIP 파일을 생성할 때 중복 파일 처리하는 방법에 대해 알아보았습니다. ZIPArchive 클래스를 통해 중복 파일을 처리하여 보다 효율적으로 ZIP 파일을 생성할 수 있습니다.

더 많은 정보가 필요하다면 PHP 공식 문서를 참고하시기 바랍니다.

PHP 공식 문서 - ZIPArchive 클래스

관련 글:

태그: #PHP #ZIP파일 #파일압축 #프로그래밍