Computer >> 컴퓨터 >  >> 프로그래밍 >> PHP

PHP pathinfo() 함수 완벽 정리 - 파일 경로 정보 추출하기

PHP의 pathinfo() 함수는 파일 경로에 대한 다양한 정보를 배열 형태로 반환하는 내장 함수입니다. 파일이 저장된 디렉터리 경로, 파일명, 확장자 등을 손쉽게 추출할 수 있어 파일 업로드 검증이나 확장자별 처리 같은 작업에서 매우 유용하게 활용됩니다.

pathinfo() 함수가 반환하는 정보

두 번째 매개변수 없이 호출하면 다음 세 가지 키를 포함한 연관 배열을 반환합니다.

  • dirname (디렉터리 이름) – 파일이 위치한 디렉터리 경로를 반환합니다.
  • basename (파일명) – 확장자를 포함한 파일 이름을 반환합니다.
  • extension (확장자) – 파일의 확장자를 반환합니다.

문법

pathinfo(path, options)

매개변수

  • path – 정보를 확인하고자 하는 파일 경로입니다. (필수)
  • options – 반환할 요소를 지정하는 선택적 매개변수입니다. 아래 상수 중 하나를 사용할 수 있습니다.
    • PATHINFO_DIRNAME – 디렉터리 이름만 반환
    • PATHINFO_BASENAME – 파일명만 반환
    • PATHINFO_EXTENSION – 확장자만 반환

반환값

두 번째 매개변수를 지정하지 않으면 위 세 가지 정보를 모두 담은 연관 배열을 반환하며, 특정 상수를 지정하면 해당 값만 문자열로 반환됩니다. 아래 예제들은 두 번째 매개변수를 설정하지 않아 전체 정보를 출력하는 경우와, 각 상수를 지정해 원하는 정보만 추출하는 경우를 보여줍니다.

예제 1: 전체 경로 정보 가져오기

두 번째 매개변수를 설정하지 않으면 디렉터리 이름, 파일명, 확장자 정보가 모두 담긴 배열이 반환됩니다.

<?php
    print_r(pathinfo("/images/architecture.png"));
?>

실행 결과

Array
(
    [dirname] => /images
    [basename] => architecture.png
    [extension] => png
)

예제 2: 디렉터리 이름만 가져오기

PATHINFO_DIRNAME 상수를 사용하면 파일이 위치한 디렉터리 경로만 얻을 수 있습니다.

<?php
    print_r(pathinfo("/images/architecture.png", PATHINFO_DIRNAME));
?>

실행 결과

/images

예제 3: 파일명만 가져오기

PATHINFO_BASENAME 상수를 사용하면 확장자를 포함한 파일명만 얻을 수 있습니다.

<?php
    print_r(pathinfo("/images/architecture.png", PATHINFO_BASENAME));
?>

실행 결과

architecture.png

예제 4: 확장자만 가져오기

PATHINFO_EXTENSION 상수를 사용하면 파일의 확장자만 얻을 수 있습니다.

<?php
    print_r(pathinfo("/images/architecture.png", PATHINFO_EXTENSION));
?>

실행 결과

png

마무리

pathinfo() 함수는 하나의 함수 호출만으로 파일 경로의 구성 요소를 깔끔하게 분리해 주기 때문에, 업로드된 파일의 확장자 검사나 경로 기반 조건 분기 등 실무 코드에서 자주 사용됩니다. 필요한 정보만 선택적으로 얻고 싶다면 두 번째 매개변수에 적절한 상수를 지정하는 방식을 활용해 보세요.