
ZipArchive::extractTo를 사용하여 압축파일을 디렉토리에 추출할 때, 디렉토리에 이미 동일한 이름의 파일이 존재하는 경우 오류가 발생합니다. 이 문제를 해결하기 위해, 압축파일 내의 파일 이름을 조건에 따라 변경할 수 있습니다.
#hostingforum.kr
php
$zip = new ZipArchive;
if ($zip->open('example.zip')) {
$zip->extractTo('destination/directory', ZIP_EXTRACT_NO_OVERWRITE);
$zip->close();
echo '압축파일이 성공적으로 추출되었습니다.';
} else {
echo '압축파일을 열 수 없습니다.';
}
ZIP_EXTRACT_NO_OVERWRITE를 사용하여, 디렉토리에 이미 동일한 이름의 파일이 존재하는 경우 압축파일 내의 파일 이름을 변경하여 추출합니다.
또한, 압축파일 내의 파일 이름을 조건에 따라 변경할 수 있습니다. 예를 들어, 압축파일 내의 파일 이름을 현재 시간으로 변경할 수 있습니다.
#hostingforum.kr
php
$zip = new ZipArchive;
if ($zip->open('example.zip')) {
$timestamp = date('YmdHis');
$zip->extractTo('destination/directory', ZIP_EXTRACT_NO_OVERWRITE);
foreach ($zip->getFromName('example.txt') as $file) {
$filename = 'example_' . $timestamp . '.txt';
$zip->addFile($file, $filename);
}
$zip->close();
echo '압축파일이 성공적으로 추출되었습니다.';
} else {
echo '압축파일을 열 수 없습니다.';
}
이 코드에서는 압축파일 내의 'example.txt' 파일을 현재 시간으로 이름을 변경하여 디렉토리에 추출합니다.
2025-07-22 00:27