background image

php 中判断文件存在是用 file_exists 还是 is_file 的整理

在写程序时发现在判断文件是否存在时,有两种写法,有的人用了

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_exists

(

$file

$file

是目录时,

is_file

返回 false,

file_exists

返回 true