본문 바로가기

비개발자의 개발 일지

현장 팀장에서 수출 ERP까지 — AI와 함께 시스템을 만든 기록

시리즈 보기
php

PHP pathinfo — 파일 경로의 디렉토리·이름·확장자 추출 완전 정리

by 왕진 2026. 6. 16.
반응형

 

 

Web Development · PHP pathinfo

PHP pathinfo —
경로에서 폴더·파일명·확장자 분리

"D:/web/test.php" → ["dirname"=>"D:/web", "basename"=>"test.php", "extension"=>"php"]
시작 오늘 분석할 코드
<?php $pathname = pathinfo(__FILE__); print $pathname['dirname']."<BR>"; // 현재 파일의 폴더 경로 print $pathname['basename']."<BR>"; // 파일명 (확장자 포함) print $pathname['extension']."<BR>"; // 확장자만 ?>

__FILE__현재 실행 중인 PHP 파일의 절대 경로를 반환하는 매직 상수. pathinfo는 그 경로를 4가지 부분으로 분해해 배열로 돌려준다.

용어 용어 정리
pathinfo()파일 경로를 분해해 배열로 반환
__FILE__현재 PHP 파일의 절대 경로 매직 상수
dirname파일이 있는 폴더 경로
basename파일명 (확장자 포함)
extension확장자 (마지막 .뒤)
filename확장자 제외 파일명
__DIR__현재 파일의 디렉토리 경로 (= dirname(__FILE__))
실무업로드 파일 검증, include 경로

1 반환 배열의 4가지 키
"D:/web/sub/test.html"의 결과
dirname "D:/web/sub"
basename "test.html"
extension "html"
filename "test"

2 두 번째 매개변수 — 단일 정보만
pathinfo("test.php", PATHINFO_EXTENSION); // "php" (문자열만 반환) pathinfo("test.php", PATHINFO_FILENAME); // "test" pathinfo("test.php", PATHINFO_BASENAME); // "test.php"

3 활용 — 업로드 파일 검증
$ext = strtolower(pathinfo($_FILES['file']['name'], PATHINFO_EXTENSION)); $allowed = ["jpg", "png", "gif", "pdf"]; if (!in_array($ext, $allowed)) { die("허용되지 않은 확장자입니다."); }

 

반응형

 

4 자주 하는 실수
· 확장자만으로 파일 종류를 판단 → 위조 가능 (파일 헤더로 검증 필요)
· 한글 파일명에서 인코딩 문제
· 점이 여러 개인 파일("a.tar.gz") → extension은 "gz"만

핵심 한 줄 요약

pathinfo()경로를 폴더·파일명·확장자로 분해
반환 4종dirname / basename / extension / filename
__FILE__현재 파일 절대 경로 매직 상수
__DIR__현재 파일의 폴더 경로 (간편 단축)
단일 정보2번째 인자 PATHINFO_EXTENSION 등
활용업로드 파일 확장자 검증
주의확장자만으로 보안 판단 X
반응형

댓글