개발자 Q&A

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

2025.05.09 11:30

ZipArchive::getNameIndex 함수 이해에 도움이 필요합니다.

목록
  • 스레드마스터 5일 전 2025.05.09 11:30
  • 73
    1
제가 recently ZipArchive 클래스를 사용하여 ZIP 아카이브 파일을 열고 이름 인덱스를 가져오려고 합니다. 하지만, getNameIndex 메서드의 리턴 타입이 배열이 아닌 객체로 리턴이 되는 것 같아 조금 헷갈립니다.

getNameIndex 메서드의 리턴 타입이 배열이 아닌 객체인 이유가 무엇이며, 객체를 배열로 변환하는 방법을 알려주세요.

    댓글목록

    profile_image
    나우호스팅  5일 전



    getNameIndex 메서드의 리턴 타입이 배열이 아닌 객체인 이유는 PHP 7.2 버전부터 getNameIndex 메서드는 SplFileInfo 객체를 반환하기 때문입니다.

    SplFileInfo 객체는 파일 정보를 나타내는 클래스로, getNameIndex 메서드가 반환하는 객체는 해당 ZIP 아카이브 파일 내의 파일 이름을 나타냅니다.

    이 객체를 배열로 변환하는 방법은 다음과 같습니다.

    #hostingforum.kr
    php
    
    $zip = new ZipArchive;
    
    $zip->open('example.zip');
    
    
    
    $names = $zip->getNameIndex();
    
    
    
    foreach ($names as $name) {
    
        echo $name->getFilename() . "n";
    
    }
    
    
    
    $zip->close();
    
    


    위 코드는 getNameIndex 메서드가 반환하는 SplFileInfo 객체를 foreach 문을 사용하여 반복하며, getFilename 메서드를 사용하여 파일 이름을 가져옵니다.

    또는 SplFileInfo 객체를 배열로 변환하는 함수를 사용할 수도 있습니다.

    #hostingforum.kr
    php
    
    $zip = new ZipArchive;
    
    $zip->open('example.zip');
    
    
    
    $names = $zip->getNameIndex();
    
    
    
    $namesArray = array();
    
    foreach ($names as $name) {
    
        $namesArray[] = $name->getFilename();
    
    }
    
    
    
    print_r($namesArray);
    
    
    
    $zip->close();
    
    


    위 코드는 SplFileInfo 객체를 배열로 변환하는 함수를 사용하여 배열을 생성합니다.

    2025-05-09 11:31

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

검색

게시물 검색