PHP 서버 파일 존재 여부 확인 방법과 fileexists() 활용
페이지 정보

본문
PHP 서버 파일 존재 여부 확인 방법과 file_exists() 활용
PHP 환경에서 서버의 파일이나 디렉토리 존재 여부를 확인하는 file_exists() 함수의 기본 사용법과 그누보드 운영 시 유용한 실전 점검 방법을 알아봅니다.
PHP 파일 및 디렉토리 존재 여부 확인 방법
PHP에서 서버에 파일이나 디렉토리가 존재하는지 확인할 때는 file_exists() 함수를 사용합니다.
기본 문법 및 사용법
file_exists() 함수는 파일 경로를 파라미터로 전달받아 지정된 파일 또는 디렉토리가 존재하면 true, 존재하지 않으면 false를 반환하는 PHP 내장 함수입니다.
$filepath = "../upload_files/heavening.jpg";
if (file_exists($filepath)) {
echo "있어요!!!";
} else {
echo "없어요..ㅠㅠ";
}
주의 사항
- 범위:
file_exists()함수는 파일뿐만 아니라 디렉토리(폴더)가 존재하는 경우에도true를 반환합니다. - 심볼릭 링크: 심볼릭 링크가 가리키는 파일이 없을 경우에는
false를 리턴합니다. - 엄격한 확인: 파일인지 디렉토리인지 구분하거나, 파일명 중복 방지 등 엄격한 확인이 필요한 경우에는
is_file()함수와 병행하여 사용하는 것이 권장됩니다.
file_exists() 함수 경로 설정 시 주의사항
PHP에서 file_exists() 함수를 사용하여 파일이나 디렉터리의 존재 여부를 확인할 때는 경로 지정 방식에 주의해야 합니다.
- 상대 경로 지정:
../test.jpg와 같은 상대 경로는 지정하여 사용할 수 있습니다. - 절대 경로 제한: 일부 환경이나 사례에서는
/로 시작하는 절대 경로 지정을 사용할 수 없거나 제한될 수 있으므로, 프로젝트 구조에 맞는 경로 형식을 확인해야 합니다. - 기타 주의사항: 파일 경로를 정확히 입력하지 않거나 파일명의 대소문자가 일치하지 않으면 파일이 존재해도
false가 반환될 수 있으므로 꼼꼼히 확인해야 합니다.
fileexists()와 isfile() 함수의 차이 및 구분 사용법
PHP에서 서버의 파일이나 디렉토리 존재 여부를 확인할 때 file_exists()와 is_file() 함수를 사용하며, 판별 대상과 동작 방식에서 차이가 있습니다.
함수별 특징 및 차이점
file_exists()- 판별 대상: 지정한 경로에 파일이나 디렉토리가 존재하는지 모두 확인합니다.
- 반환 값: 존재하면
true, 존재하지 않으면false를 반환합니다.
is_file()- 판별 대상: 지정한 경로가 디렉토리가 아닌 일반 파일(Regular file)인지 확인합니다.
- 반환 값: 경로가 존재하고 정상적인 파일일 경우
true를 반환하며, 디렉토리이거나 파일이 없으면false를 반환합니다.
구분 사용 기준
- 단순 존재 확인: 파일뿐만 아니라 디렉토리의 존재 여부까지 포괄적으로 체크할 때는
file_exists()를 사용하는 것이 효율적입니다. - 엄격한 파일 유무 판별: 디렉토리와 파일을 정확히 구분하여 오작동을 방지해야 하는 경우(예: 첨부파일 다운로드 로직 등)에는
is_file()을 사용하여 파일의 실존 여부를 검증하는 것이 바람직합니다. 대량의 반복문에서is_file()을 과도하게 사용하면 성능 부하가 발생할 수 있으므로, 필요한 경우에만 조합하여 사용하는 것이 좋습니다.
그누보드 첨부파일 및 다운로드 파일 존재 여부 검사 방법
그누보드 소스 코드 내에서 첨부파일이나 다운로드 파일이 존재하지 않을 때 발생하는 에러를 방지하려면 file_exists() 함수와 is_file() 함수를 함께 사용하여 파일의 존재 여부와 유효성을 안전하게 검사할 수 있습니다.
1. 다운로드 파일 존재 여부 확인 및 에러 방지 예시
그누보드 기본 다운로드 경로 및 파일 존재 여부 검증 구조(bbs/download.php 참고)는 다음과 같이 구성할 수 있습니다.
$filepath = G5_DATA_PATH.'/file/'.$bo_table.'/'.$file['bf_file'];
$filepath = addslashes($filepath);
// 파일이 존재하지 않거나 일반 파일이 아닐 경우 false 처리
$file_exist_check = (!is_file($filepath) ||!file_exists($filepath))? false: true;
if ( false === $file_exist_check ) {
alert('파일이 존재하지 않습니다.');
}
2. 함수별 특징과 주의사항
file_exists($filepath): 지정한 경로에 파일 또는 디렉토리가 존재하면true, 존재하지 않으면false를 반환합니다. 파일과 디렉토리를 모두 체크하므로 파일명 없이 디렉토리 경로만 존재해도true를 반환할 수 있는 구조적 특성이 있습니다.is_file($filename): 파일이 존재하고 정상적인 일반 파일(regular file)일 때true를 반환합니다. 정확한 파일 유무 판단을 위해 두 조건을 함께 사용하는 것이 바람직할 수 있습니다.- 성능 주의사항: 목록을 출력하는 반복문 등에서
file_exists()나is_file()을 과도하게 호출하면 서버 부하가 발생할 수 있으므로, 파일 저장 시점에 확실히 검증하거나 꼭 필요한 로직에서만 최소한으로 사용하는 것이 좋습니다.
함께 보면 좋은 글
참고자료
기타 참고자료
- rhandykim.tistory.com — PHP 함수 file_exists() 함수를 사용하여 파일과 디렉토리 존재 여부 확인하기
- goodsgoods.tistory.com — PHP 파일 존재 유무 확인과 삭제 방법, 파일 업로드 꿀팁까지!
- lucidmaj7.tistory.com — PHP fileexists, isdir 파일 존재 확인 하기
- sir.kr — 유용한 함수 file_exists - SIR - 개발자 커뮤니티
- m.blog.naver.com — PHP 파일 존재여부 체크 함수 : 네이버 블로그
- dotiweb.tistory.com — PHP 서버에 파일 유무 확인하기 is_file
- phpschool.com — PHPSCHOOL-Q&A > PHP관련/함수/프레임웍 질문과답변
- sharphail.tistory.com — PHP 파일(및 폴더)체크 함수
- 이전글그누보드 게시판 페이지 타이틀 및 홈페이지 제목 수정 방법 26.10.01
- 다음글그누보드 게시판 데이터베이스 여분 필드 확장 (wr11 이상 추가) 26.09.30
댓글목록
등록된 댓글이 없습니다.