>  기사  >  백엔드 개발  >  PHP에서 파일 존재 여부를 확인하려면 is_file 또는 file_exists를 사용해야 합니까? _php 팁

PHP에서 파일 존재 여부를 확인하려면 is_file 또는 file_exists를 사용해야 합니까? _php 팁

WBOY
WBOY원래의
2016-05-16 20:18:291147검색

파일이 존재하는지 확인하려면 is_file 또는 file_exists?를 사용하세요.

프로그램을 작성할 때 파일이 존재하는지 확인하는 방법이 두 가지라는 것을 알았습니다. 어떤 사람들은 is_file을 사용하고 어떤 사람들은 file_exists를 사용하는 것이 더 낫거나 더 적합합니까?

이 글을 읽은 후PHP에서 file_exists와 is_file, is_dir의 차이점 기본적으로 PHP의 file_exists = is_dir is_file이라는 것을 이해했습니다.

확인 프로그램을 작성하세요.

각각 1000번씩 실행하고 소요시간을 기록합니다.

파일 존재(현재 디렉터리)

코드 복사 코드는 다음과 같습니다.

is_file:0.4570ms
file_exists:2.0640ms

파일이 존재합니다(절대 경로 레벨 3/www/hx/a/)
코드 복사 코드는 다음과 같습니다.

is_file:0.4909ms
file_exists:3.3500ms

파일이 존재합니다(절대 경로 레벨 5/www/hx/a/b/c/)
코드 복사 코드는 다음과 같습니다.

is_file:0.4961ms
file_exists:4.2100ms

파일이 존재하지 않습니다(현재 디렉터리)
코드 복사 코드는 다음과 같습니다.

is_file:2.0170ms
file_exists:1.9848ms

파일이 존재하지 않습니다(절대경로 레벨 5/www/hx/a/b/c/)
코드 복사 코드는 다음과 같습니다.

is_file:4.1909ms
file_exists:4.1502ms

디렉토리가 존재합니다
코드 복사 코드는 다음과 같습니다.

file_exists:2.9271ms
is_dir:0.4601ms

디렉토리가 존재하지 않습니다
코드 복사 코드는 다음과 같습니다.

file_exists:2.9719ms
is_dir:2.9359ms

is_file($file)
파일_존재($file)

$file이 디렉터리인 경우 is_file은 false를 반환하고 file_exists는 true를 반환합니다

파일이 존재하는 경우 is_file이 file_exists보다 훨씬 빠릅니다.
파일을 탐지할 디렉터리가 깊어질수록 속도 차이는 커지지만 최소 4배 이상 빨라집니다.

파일이 존재하지 않는 경우 is_file은 file_exists보다 약간 느리지만 무시할 수 있습니다.

디렉토리가 존재하는 경우 is_dir이 file_exists보다 훨씬 빠릅니다.
디렉터리가 존재하지 않는 경우 is_dir은 file_exists보다 약간 느리지만 무시할 수 있습니다.

결론:

파일이 존재하는지 확인하려면 is_file() 함수를 사용하세요.
디렉토리가 존재하는지 확인하려면 is_dir() 함수를 사용하십시오.
file_exists를 쓸 곳이 없는 것 같습니다. 전달된 매개 변수가 파일인지 디렉터리인지 확실하지 않을 때 사용됩니까?

첨부된 테스트 프로그램 :

코드 복사 코드는 다음과 같습니다.

함수 런타임($t1){
number_format((microtime(true) - $t1)*1000, 4).'ms';
반환 }
$times = 1000;

$t1 = 마이크로타임(true);
for($i=0;$i<$times;$i ){
is_file('/www/hx/www.9enjoy.com/config.php');
}

echo '
is_file:'.runtime($t1);

$t2 = 마이크로타임(true)
for($i=0;$i<$times;$i ){
File_exists('/www/hx/www.9enjoy.com/config.php');
}
echo '
file_exists:'.runtime($t2)

/*
$t3 = 마이크로타임(참)
for($i=0;$i<$times;$i ){
is_dir('/www/hx/www.9enjoy.com/');
}
echo '
is_dir:'.runtime($t3)
*/

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.