
ZipArchive::replaceFile 메서드를 사용할 때는 두 가지 조건을 충족해야 합니다.
1. 압축파일이 열릴 수 있어야 합니다. open 메서드를 사용하여 압축파일을 열어야 합니다.
2. 교체하려는 파일이 압축파일 내에 존재해야 합니다. replaceFile 메서드는 파일이 존재하지 않으면 오류를 발생시킵니다.
위의 경우, 'oldfile.txt'가 압축파일 내에 존재하지 않기 때문에 오류가 발생했습니다. 그러나 실제로 'oldfile.txt'는 압축파일 내에 존재하고 있습니다. 이 문제를 해결하기 위해서는 'oldfile.txt'가 압축파일 내에 존재하는지 확인하는 코드를 추가해야 합니다.
#hostingforum.kr
php
$zip = new ZipArchive;
if ($zip->open('example.zip')) {
if ($zip->locateName('oldfile.txt') !== false) {
if ($zip->replaceFile('oldfile.txt', 'newfile.txt')) {
echo '파일 교체 성공';
} else {
echo '파일 교체 실패';
}
} else {
echo 'oldfile.txt가 압축파일 내에 존재하지 않습니다.';
}
$zip->close();
}
위 코드에서는 locateName 메서드를 사용하여 'oldfile.txt'가 압축파일 내에 존재하는지 확인합니다. 존재하지 않으면 오류 메시지를 출력합니다.
2025-05-22 23:29