
ZipArchive 클래스의 addPattern 메소드는 패턴을 사용하여 ZIP 아카이브에 파일 또는 폴더를 추가할 수 있습니다. 이 메소드는 glob 패턴을 사용하며, '*'은 하나 이상의 문자를 의미하고, '?'은 하나의 문자를 의미합니다.
위 코드에서 문제가 발생하는 이유는, addPattern 메소드는 폴더 이름을 기준으로 패턴을 검색하므로, 폴더 이름이 '*.txt'인 폴더만 추가됩니다. 만약 txt 파일을 추가하려면, 패턴을 '*/*.txt'으로 수정해야 합니다.
예를 들어, 다음과 같이 코드를 수정할 수 있습니다.
#hostingforum.kr
php
$zip = new ZipArchive();
$zip->open('example.zip', ZipArchive::CREATE);
$zip->addPattern('*.txt', 'example');
$zip->close();
위 코드는 example 폴더 내의 모든 txt 파일을 ZIP 아카이브에 추가합니다.
또한, addPattern 메소드는 폴더 이름을 기준으로 패턴을 검색하므로, 폴더 이름을 포함한 패턴을 사용할 수 있습니다. 예를 들어, 다음과 같이 코드를 수정할 수 있습니다.
#hostingforum.kr
php
$zip = new ZipArchive();
$zip->open('example.zip', ZipArchive::CREATE);
$zip->addPattern('*.txt', 'example/subfolder');
$zip->close();
위 코드는 example 폴더 내의 subfolder 폴더 내의 모든 txt 파일을 ZIP 아카이브에 추가합니다.
2025-08-11 21:04