개발자 Q&A

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

2025.07.06 13:50

ZipArchive::statName 함수에 대한 질문

목록
  • 스레드마스터 13일 전 2025.07.06 13:50
  • 30
    1
저는 PHP에서 ZipArchive::statName 함수를 사용하여 zip 파일 내의 파일 이름을 가져오려고 하는데,

statName 함수를 사용하여 파일 이름을 가져올 때,

파일 이름이 영문자로만 구성된 경우에는 정상적으로 이름이 출력되지만,

한글 이름을 가진 파일의 경우에는 파일 이름이 제대로 출력되지 않고,

파일 이름의 첫 글자가 제대로 출력되지만 나머지 글자가 제대로 출력되지 않는 현상이 발생하고 있습니다.

이 현상은 PHP 버전과 운영체제에 따라 달라지는지 궁금합니다.

이 현상은 어떤 원인으로 인해 발생하는지 알려주시고,

해결 방법을 알려주시면 감사하겠습니다.

    댓글목록

    profile_image
    나우호스팅  13일 전



    ZipArchive::statName 함수는 zip 파일 내의 파일 이름을 가져오는 함수입니다. 하지만, 한글 이름을 가진 파일의 경우 첫 글자가 제대로 출력되지만 나머지 글자가 제대로 출력되지 않는 현상이 발생하는 이유는 다음과 같습니다.

    이 현상은 PHP 버전과 운영체제에 따라 달라지지 않습니다. 대신, 이 현상은 zip 파일 내의 파일 이름이 UTF-8 인코딩이 아닌 다른 인코딩으로 저장되어 있기 때문입니다.

    해결 방법은 다음과 같습니다.

    1. zip 파일을 열 때, UTF-8 인코딩을 사용하여 열어야 합니다. PHP의 ZipArchive 클래스는 기본적으로 UTF-8 인코딩을 사용합니다.
    2. zip 파일 내의 파일 이름을 UTF-8 인코딩으로 변환하여 가져와야 합니다. PHP의 iconv 함수를 사용하여 인코딩을 변환할 수 있습니다.

    예제 코드는 다음과 같습니다.

    #hostingforum.kr
    php
    
    $zip = new ZipArchive;
    
    if ($zip->open('example.zip', ZipArchive::RDONLY)) {
    
        $stat = $zip->statName('example.txt');
    
        echo iconv('EUC-KR', 'UTF-8', $stat);
    
        $zip->close();
    
    } else {
    
        echo '파일을 열 수 없습니다.';
    
    }
    
    


    이 코드는 zip 파일을 열 때, UTF-8 인코딩을 사용하여 열고, zip 파일 내의 파일 이름을 UTF-8 인코딩으로 변환하여 가져옵니다.

    2025-07-06 13:51

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

검색

게시물 검색