PHP에서 파일 경로가 주어졌을 때 파일 이름만 추출해야 하는 경우가 자주 있습니다. 예를 들어 업로드된 파일을 처리하거나, 로그를 분석하거나, 디렉터리 내용을 다룰 때 유용하게 사용됩니다. PHP에서는 pathinfo() 함수와 basename() 함수 두 가지 방법으로 손쉽게 파일 이름을 얻을 수 있습니다.
방법 1: pathinfo() 함수 사용하기
pathinfo() 함수는 경로에 대한 정보를 연관 배열 형태로 반환합니다. 이 배열에는 디렉터리명(dirname), 파일명(basename), 확장자(extension), 확장자를 제외한 파일명(filename)이 포함됩니다.
예제
<?php
$file = pathinfo('/home/cg/root/6985034/main.php');
echo $file['basename'], "\n";
?>
출력 결과
main.php
위 코드에서는 pathinfo()가 반환한 배열 중 'basename' 키의 값을 출력하여 확장자를 포함한 전체 파일 이름인 main.php를 얻었습니다.
방법 2: basename() 함수 사용하기
basename() 함수는 경로에서 마지막 구성 요소, 즉 파일 이름만 간단히 반환합니다. 두 번째 인수에 확장자를 지정하면 해당 확장자를 제거한 순수한 파일 이름도 얻을 수 있습니다.
예제
<?php $path = "/home/cg/root/6985034/main.php"; $file = basename($path, ".php"); echo $file; ?>
출력 결과
main
이번에는 basename()의 두 번째 인수로 '.php'를 전달했기 때문에 확장자가 제거된 main이라는 결과가 출력되었습니다.
정리
- 확장자를 포함한 파일 이름이 필요하다면
pathinfo($path)['basename']또는basename($path)를 사용하세요. - 확장자를 제외한 파일 이름이 필요하다면
basename($path, '.확장자')또는pathinfo($path)['filename']을 사용하세요.
두 함수 모두 별도의 라이브러리 설치 없이 PHP 기본 제공 기능으로 동작하므로, 상황에 맞게 선택하여 사용하면 됩니다.