개발자 Q&A

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

2025.05.03 08:40

SplFileInfo::getFilename에 대한 질문

목록
  • 코딩테스트러버 13시간 전 2025.05.03 08:40 새글
  • 6
    1
제가 SplFileInfo 클래스를 공부 중인데, getFilename 메소드에 대한 이해가 부족합니다.

SplFileInfo 클래스의 getFilename 메소드는 파일의 이름만을 반환하는 것으로 알고 있습니다.

그런데 PHP 8.1 버전에서 getFilename 메소드를 사용했을 때, 파일 경로가 함께 반환되는 것을 발견했습니다.

이러한 문제가 발생하는 이유를 알고 싶습니다.

또한, 이 문제를 해결하기 위한 방법을 알려주세요.

    댓글목록

    profile_image
    나우호스팅  13시간 전



    SplFileInfo 클래스의 getFilename 메소드는 PHP 8.1 버전에서 파일 경로를 포함한 파일 이름을 반환합니다.

    이유는 PHP 8.1 버전에서 getFilename 메소드가 변경되었기 때문입니다. 이전 버전에서는 파일 이름만 반환했지만, 현재 버전에서는 파일 경로를 포함한 파일 이름을 반환합니다.

    이 문제를 해결하기 위한 방법은 다음과 같습니다.

    1. getFilename 메소드 대신 getPathname 메소드를 사용하세요. getPathname 메소드는 파일 경로를 반환합니다.
    2. getFilename 메소드의 반환 값을 필터링하세요. 예를 들어, substr 함수를 사용하여 파일 경로를 제거할 수 있습니다.
    3. SplFileInfo 클래스의 버전을 확인하세요. 이전 버전의 SplFileInfo 클래스에서는 getFilename 메소드가 파일 이름만 반환합니다.

    예를 들어, 다음 코드에서는 getPathname 메소드를 사용하여 파일 경로를 반환합니다.

    #hostingforum.kr
    php
    
    $file = new SplFileInfo('path/to/file.txt');
    
    echo $file->getPathname(); // path/to/file.txt
    
    


    또한, 다음 코드에서는 getFilename 메소드의 반환 값을 필터링하여 파일 경로를 제거합니다.

    #hostingforum.kr
    php
    
    $file = new SplFileInfo('path/to/file.txt');
    
    echo substr($file->getFilename(), strrpos($file->getFilename(), '/') + 1); // file.txt
    
    

    2025-05-03 08:41

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

검색

게시물 검색