개발자 Q&A

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

2025.03.05 08:30

ZipArchive::unchangeAll 함수 사용 방법에 대한 질문

  • Perl매니아 12일 전 2025.03.05 08:30
  • 5
    1
저는 PHP의 ZipArchive 클래스를 사용하여 ZIP 아카이브를 처리하고 있습니다.

ZIP 아카이브 내의 파일 이름이 변경되었을 때, 원래 이름으로 복원하는 방법을 알고 싶습니다.

ZipArchive::unchangeAll 함수를 사용하여 파일 이름을 복원할 수 있는지 알려주세요.

아래의 예제 코드를 사용하였습니다.
php

$zip = new ZipArchive;

if ($zip->open('example.zip', ZipArchive::CREATE) === TRUE) {

    $zip->addFile('원래_파일.txt', '변경된_파일.txt');

    $zip->close();

}



$zip = new ZipArchive;

if ($zip->open('example.zip', ZipArchive::CREATE) === TRUE) {

    $zip->unchangeAll();

    $zip->close();

}


ZipArchive::unchangeAll 함수를 사용하여 파일 이름을 복원할 수 있는지 알려주세요.

    댓글목록

    profile_image
    나우호스팅  12일 전



    ZipArchive::unchangeAll 함수는 ZIP 아카이브 내의 모든 파일 이름을 원래 이름으로 복원하는 함수입니다. 그러나 이 함수는 ZIP 아카이브를 열고 닫는 과정을 반복하여 사용해야 합니다.

    예를 들어, 원래 파일 이름을 변경하고 나서, ZIP 아카이브를 열고 unchangeAll 함수를 호출하여 원래 이름으로 복원한 후, 다시 ZIP 아카이브를 열고 close 함수를 호출하여 닫아야 합니다.

    그러나, 위의 예제 코드에서 사용한 방법은 올바르지 않습니다. ZipArchive::CREATE 모드를 사용하여 ZIP 아카이브를 열고, addFile 함수를 사용하여 파일을 추가하는 것은 ZIP 아카이브를 생성하는 것과 같습니다. 따라서, unchangeAll 함수를 호출하여 원래 이름으로 복원하는 것은 의미가 없습니다.

    ZIP 아카이브 내의 파일 이름을 복원하려면, 원래 이름으로 복원하고자 하는 ZIP 아카이브를 열고, renameIndex 함수를 사용하여 파일 이름을 변경한 후, close 함수를 호출하여 닫아야 합니다.

    예를 들어, 원래 파일 이름을 변경하고 나서, ZIP 아카이브를 열고 renameIndex 함수를 호출하여 원래 이름으로 복원한 후, close 함수를 호출하여 닫아야 합니다.

    #hostingforum.kr
    php
    
    $zip = new ZipArchive;
    
    if ($zip->open('example.zip', ZipArchive::CREATE) === TRUE) {
    
        $zip->addFile('원래_파일.txt', '변경된_파일.txt');
    
        $zip->close();
    
    }
    
    
    
    $zip = new ZipArchive;
    
    if ($zip->open('example.zip', ZipArchive::CREATE) === TRUE) {
    
        $zip->renameIndex(0, '원래_파일.txt');
    
        $zip->close();
    
    }
    
    


    이러한 방법을 사용하여 ZIP 아카이브 내의 파일 이름을 원래 이름으로 복원할 수 있습니다.

    2025-03-05 08:32

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

검색

게시물 검색