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