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

yipeiwu_com6年前PHP代码库
看了这篇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

文件存在的情况下,is_file比file_exists要快得多;
要检测文件所在的目录越深,速度差越多,但至少快4倍。

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

目录存在的情况下,is_dir比file_exists要快得多;
目录不存在的情况下,is_dir比file_exists要慢一点点,但可以忽略不计。

结论:

如果要判断文件是否存在,用函数 is_file(),
如果要判断目录是否存在,用函数 is_dir(),
好像没地方需要用file_exists了,不确定传入的参数是文件还是目录的时候用?

相关文章

图文介绍PHP添加Redis模块及连接

图文介绍PHP添加Redis模块及连接

下面通过图文并茂的方式给大家展示如下: 上几篇文章介绍了Redis的安装及使用,下面将介绍php如何添加Redis扩展!   php手册并没有提供Redis的类和方法,也没有提供相关的扩...

php获取网页里所有图片并存入数组的方法

本文实例讲述了php获取网页里所有图片并存入数组的方法。分享给大家供大家参考。具体如下: $images = array(); preg_match_all('/(img|src)=...

PHP实现的AES加密、解密封装类与用法示例

本文实例讲述了PHP实现的AES加密、解密封装类与用法。分享给大家供大家参考,具体如下: <?php /** * Class AES * 用于AES加解密数据 *...

PHP中字符安全过滤函数使用小结

在WEB开发过程中,我们经常要获取来自于世界各地的用户输入的数据。但是,我们“永远都不能相信那些用户输入的数据”。所以在各种的Web开发语言中,都会提供保证用户输入数据安全的函数。在PH...

php中随机显示图片的函数代码

例如博客的展示窗 复制代码 代码如下: <?php /********************************************** * Filename : img...