특정 파일이 php 서버 저장소에 실제로 존재하는지 확인하기 위해 사용할 수 있는 PHP 함수에 대하여 알아보겠습니다. 이때 사용할 수 있는 함수로
file_exists() 와
is_file() 그리고
file() 함수가 있습니다.
# php 서버의 파일 유무 확인하는 방법
이 함수를 사용해 파일 존재 유무를 알아내는 방법은 아래와 같습니다.
file_exists(경로 및 파일이름);
is_file(파일이름);
셋 다 파일의 유무를 확인할 수 있지만 두 함수의 차이점은 무엇일까요? 일반적인 케이스에서는 file()을 사용하면 됩니다. 각 차이점은 다음과 같습니다.
is_file()의 경우
파일의 확인이 가능하며 디렉토리를 확인할 경우 무조건 false를 반환한다는 점입니다. 즉, 경로를 확인하기 위하여는
file_exists()를 사용하시기 바랍니다. 그리고
file() 함수는 다른 위치의 경로 ~ 파일의 호스트 주소를 함께 사용할 경우에 사용합니다. 그럼 자세한 건 아래 예제를 통해 알아보죠.
! file_exists() 함수 예제보기
file_exist()는 파일 및 경로의 유무를 확인 후
불리언(Boolean)으로 반환합니다.
<?php
$is_file_exist = file_exists('/blog/test.txt');
if ($is_file_exist) {
echo 'Found it';
}
else {
echo 'Not found.'
}
?>
위 코드를 실행하면 어떻게 될까요? 만약 파일이 있는 경우라면 'Found it'을 출력합니다.
! is_file() 함수 예제보기
다음으로
is_file() 함수는 함수명처럼 일반적인 파일인지.. 파일의 상태를 불리언으로 반환하므로 경로에 적용하기 어렵습니다. 그래서 경로는 false로 반환합니다.
<?php
$is_file = is_file('/blog/test.txt');
$is_file2 = is_file('/blog/');
if ($is_file) {
echo 'It is file';
}
if ($is_file2) {
echo 'Not a file';
}
?>
파일인 경우 It is file을 출력합니다.
! file() 함수 사용 예제
만약 특정 도메인에 있는 파일의 유무를 확인하기 위해서는 다른 방법을 사용해야 합니다. 그 중 하나로
file() 함수가 있습니다. 아래 예제를 참고하세요.
<?php
$file_check = file('http://webisfree.com/.../.../');
if ($file_check) {
echo 'Existing.';
}
?>
위 예제를 실행시켜 만약 서버에 해당 파일이 존재할 경우 'Existing'을 출력합니다.
! 한가지 더~ 주의할 점...
만약 자신의 PC, 즉 local에 있는 파일을 확인할 경우 경로명에 아래와 같이 점(period)이 포함되어 있는지 확인해 주세요... 예를 들어 아래 방법이 올바른 사용 방법입니다.
$file_check = file_exists('/contents/test.jpg'); ( X )
$file_check = file_exists('./contents/test.jpg'); ( O )
period(.)의 여부에 따라서 검색결과가 달라지거나 에러가 발생할 수 있습니다.