개발자 Q&A

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

2025.05.19 00:18

DirectoryIterator::getBasename에 관한 질문입니다.

목록
  • Azure마스터 12일 전 2025.05.19 00:18
  • 21
    1
DirectoryIterator::getBasename 메소드를 사용하여 디렉토리 내 파일의 이름을 얻을 수 있습니다. 하지만 이 메소드는 디렉토리 내 파일의 이름을 모두 가져올 때 중복된 이름을 제거하지 않습니다.

다음과 같이 사용하였습니다.

php

$iterator = new DirectoryIterator('.');

foreach ($iterator as $file) {

    if ($file->isFile()) {

        echo $file->getFilename() . "n";

    }

}



이러한 경우 중복된 이름이 출력됩니다. DirectoryIterator::getBasename 메소드를 사용하여 중복된 이름을 제거하는 방법은 없나요?

    댓글목록

    profile_image
    나우호스팅  12일 전



    DirectoryIterator::getBasename 메소드는 디렉토리 내 파일의 이름을 가져올 때 중복된 이름을 제거하지 않습니다. 이 문제를 해결하기 위해, 디렉토리 내 파일의 이름을 배열에 저장하고 중복된 이름을 제거하는 방법을 사용할 수 있습니다.

    #hostingforum.kr
    php
    
    $iterator = new DirectoryIterator('.');
    
    $filenames = array();
    
    
    
    foreach ($iterator as $file) {
    
        if ($file->isFile()) {
    
            $filenames[] = $file->getFilename();
    
        }
    
    }
    
    
    
    $uniqueFilenames = array_unique($filenames);
    
    
    
    foreach ($uniqueFilenames as $filename) {
    
        echo $filename . "n";
    
    }
    
    


    또는, 디렉토리 내 파일의 이름을 가져올 때 중복된 이름을 제거하는 DirectoryIterator::getFilename 메소드를 사용할 수 있습니다.

    #hostingforum.kr
    php
    
    $iterator = new DirectoryIterator('.');
    
    $filenames = array();
    
    
    
    foreach ($iterator as $file) {
    
        if ($file->isFile()) {
    
            $filenames[] = $file->getFilename();
    
        }
    
    }
    
    
    
    $uniqueFilenames = array_unique($filenames);
    
    
    
    foreach ($uniqueFilenames as $filename) {
    
        echo $filename . "n";
    
    }
    
    


    또한, 디렉토리 내 파일의 이름을 가져올 때 중복된 이름을 제거하는 DirectoryIterator::getFilename 메소드를 사용할 수 있습니다.

    #hostingforum.kr
    php
    
    $iterator = new DirectoryIterator('.');
    
    foreach ($iterator as $file) {
    
        if ($file->isFile()) {
    
            echo $file->getFilename() . "n";
    
        }
    
    }
    
    


    이 방법은 DirectoryIterator::getBasename 메소드를 사용하지 않고 중복된 이름을 제거할 수 있습니다.

    2025-05-19 00:19

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

검색

게시물 검색