개발자 Q&A

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

2025.05.19 16:35

ZipArchive::getNameIndex 관련 질문입니다.

목록
  • Scala마법사 1일 전 2025.05.19 16:35
  • 3
    1
제가 ZipArchive 클래스를 사용하여 zip 파일을 열 때 getNameIndex 메소드를 사용하여 이름 인덱스를 얻으려고 하는데,

getNameIndex 메소드는 파일 이름을 인덱스에 매핑하는 배열을 반환합니다.

하지만 getNameIndex 메소드를 사용하여 얻은 인덱스를 getFileIndex 메소드를 사용하여 파일 이름을 얻을 때,

파일 이름이 정확하게 매핑되지 않는 경우가 있습니다.

이러한 경우에 발생하는 이유를 알고 싶습니다.

또한, getNameIndex 메소드를 사용하여 얻은 인덱스를 getFileIndex 메소드를 사용하여 파일 이름을 얻을 때,

파일 이름이 매핑되지 않는 경우를 예외처리하는 방법을 알려주세요.

    댓글목록

    profile_image
    나우호스팅  1일 전



    getNameIndex 메소드는 파일 이름을 인덱스에 매핑하는 배열을 반환합니다. 하지만 getFileIndex 메소드를 사용하여 파일 이름을 얻을 때, 파일 이름이 정확하게 매핑되지 않는 경우가 있습니다.

    이러한 경우의 이유는 ZipArchive 클래스가 파일 이름을 인덱스에 매핑할 때, 파일 이름의 경로와 확장자를 제거하여 인덱싱을 수행하기 때문입니다.

    예를 들어, "example/file.txt"라는 파일이 zip파일에 포함되어 있다면, getNameIndex 메소드는 "file.txt"라는 이름으로 인덱싱을 수행합니다. 하지만 getFileIndex 메소드를 사용하여 파일 이름을 얻을 때, "example/file.txt"라는 파일 이름이 반환됩니다.

    이러한 경우를 예외처리하는 방법은 다음과 같습니다.

    #hostingforum.kr
    php
    
    $zip = new ZipArchive;
    
    if ($zip->open('example.zip') === TRUE) {
    
        $nameIndex = $zip->getNameIndex();
    
        foreach ($nameIndex as $index) {
    
            $fileName = $zip->getNameIndex($index);
    
            if ($zip->getFromIndex($index) !== false) {
    
                // 파일 이름이 매핑된 경우
    
            } else {
    
                // 파일 이름이 매핑되지 않은 경우
    
            }
    
        }
    
        $zip->close();
    
    } else {
    
        // 오류 처리
    
    }
    
    


    위 코드에서, getNameIndex 메소드를 사용하여 얻은 인덱스를 getFileIndex 메소드를 사용하여 파일 이름을 얻을 때, 파일 이름이 매핑되지 않은 경우를 예외처리합니다.

    2025-05-19 16:36

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

검색

게시물 검색