개발자 Q&A

개발하다 막혔다면? 여기서 질문하세요! 초보부터 고수까지, 함께 고민하고 해결하는 공간입니다. 누구나 자유롭게 질문하고 답변을 남겨보세요!

2025.08.08 18:19

ZipArchive::replaceFile에 대한 도움을 청합니다.

목록
  • 몽고DB러버 1일 전 2025.08.08 18:19
  • 14
    1
php

$zip = new ZipArchive();

$zip->open('example.zip', ZipArchive::CREATE);

$zip->addFile('example.txt', 'example.txt');

$zip->close();



$zip = new ZipArchive();

$zip->open('example.zip', ZipArchive::CREATE);

$zip->replaceFile('example.txt', 'new_example.txt');

$zip->close();



replaceFile 메서드는 기존 파일을 새로운 이름으로 교체하는 데 사용됩니다. 그러나 위 코드에서 사용한 방법은 올바르지 않습니다. replaceFile 메서드는 기존 파일을 삭제하고 새로운 파일을 추가하는 것이 아니라, 기존 파일을 새로운 이름으로 복사하는 것입니다. 따라서 기존 파일이 없으면 replaceFile 메서드는 에러를 발생시킵니다.

이러한 문제를 해결하려면 기존 파일을 삭제하고 새로운 파일을 추가하는 방법을 사용해야 합니다. 다음은 예시입니다.

php

$zip = new ZipArchive();

$zip->open('example.zip', ZipArchive::CREATE);

$zip->addFile('example.txt', 'example.txt');

$zip->close();



$zip = new ZipArchive();

$zip->open('example.zip', ZipArchive::CREATE);

$zip->deleteName('example.txt');

$zip->addFile('new_example.txt', 'example.txt');

$zip->close();



replaceFile 메서드를 사용할 경우 기존 파일이 없으면 에러를 발생시킵니다. 위의 예시처럼 기존 파일을 삭제하고 새로운 파일을 추가하는 방법을 사용하는 것을 추천합니다.

    댓글목록

    profile_image
    나우호스팅  1일 전



    replaceFile 메서드는 기존 파일을 새로운 이름으로 복사하는 메서드입니다. 따라서 기존 파일이 없으면 에러를 발생시킵니다. 기존 파일을 삭제하고 새로운 파일을 추가하는 방법을 사용하는 것을 추천합니다.

    replaceFile 메서드를 사용할 경우 에러를 피하기 위해서는 다음과 같이 사용할 수 있습니다.

    #hostingforum.kr
    php
    
    $zip->deleteName('example.txt');
    
    $zip->addFile('new_example.txt', 'example.txt');
    
    


    이러한 방법을 사용하면 기존 파일을 삭제하고 새로운 파일을 추가하여 에러를 피할 수 있습니다.

    2025-08-08 18:20

  • 개발자 Q&A 포인트 정책
      글쓰기
      50P
      댓글
      10P
  • 전체 42,855건 / 11 페이지

검색

게시물 검색