PHP의 file_exists() 함수는 지정한 파일 또는 디렉터리가 실제로 존재하는지 확인하는 데 사용됩니다. 검사하려는 파일이나 디렉터리의 경로를 매개변수로 전달받으며, 파일 시스템 작업 전 안전성을 높이는 데 필수적인 함수입니다.
주요 활용 사례
- 파일을 읽거나 수정하기 전에 해당 파일이 존재하는지 미리 확인하여 오류를 방지할 수 있습니다.
- 새 파일을 생성할 때 동일한 이름의 파일이 이미 존재하는지 검사하여 중복 생성이나 덮어쓰기 사고를 막을 수 있습니다.
문법(Syntax)
file_exists($file_path)
매개변수(Parameters)
- file_path(필수) — 존재 여부를 확인할 파일 또는 디렉터리의 경로를 지정합니다.
반환값(Return)
file_exists() 함수는 불리언(Boolean) 값을 반환합니다.
- 파일 또는 디렉터리가 존재하면 true 반환
- 존재하지 않으면 false 반환
예제(Example)
다음은 'candidate.txt' 파일의 존재 여부를 확인하고, 파일이 없을 경우에도 적절한 메시지를 출력하는 예제입니다.
<?php
$myfile = '/doc/candidate.txt';
if (file_exists($myfile)) {
echo "$myfile exists!";
} else {
echo "$myfile does not exist!";
}
?>
실행 결과(Output)
파일이 존재하지 않는 경우 아래와 같은 결과가 출력됩니다.
/doc/candidate.txt does not exist!
참고 사항
file_exists()는 성능 향상을 위해 결과를 캐시합니다. 같은 스크립트 실행 중에 파일이 삭제되거나 생성된 최신 상태를 확인하려면clearstatcache()함수를 호출해 캐시를 초기화해야 합니다.- 이 함수는 원격 URL에는 사용할 수 없으며, 로컬 파일 시스템의 경로에만 유효합니다.
- 파일이 존재하더라도 현재 사용자에게 읽기 권한이 없으면 의도대로 동작하지 않을 수 있으므로, 필요에 따라
is_readable()등의 함수를 함께 활용하는 것이 좋습니다.