在 PHP 中判断文件是否存在,可以使用 is_filefile_exists;判断文件夹是否存在,可以使用:is_dirfile_exists,即 file_exists = is_dir + is_file。三者实现的功能相同,下面就从效率方面对比一下:

file_existsis_fileis_dir 效率对比:

文件存在(当前目录):is_file:0.4570ms、file_exists:2.0640ms

文件存在(/www/www.codesou.cn/a/):is_file:0.4909ms、file_exists:3.3500ms

文件存在(/www/www.codesou.cn/a/b/c/):is_file:0.4961ms、file_exists:4.2100ms

文件不存在(当前目录):is_file:2.0170ms、file_exists:1.9848ms

文件不存在(/www/www.codesou.cn/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_filefile_exists要快得多;

文件不存在的情况下,is_filefile_exists要慢一点点,但可以忽略不计。

目录存在的情况下,is_dirfile_exists要快得多;

目录不存在的情况下,is_dirfile_exists要慢一点点,但可以忽略不计。

结论:

如果要判断文件是否存在,用函数 is_file(),如果要判断目录是否存在,用函数 is_dir(),只有在不知道判断对象是文件还是目录时,使用 file_exists()