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


Posted in PHP onSeptember 12, 2012

看了这篇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 相关文章推荐
基于mysql的论坛(5)
Oct 09 PHP
php smarty函数扩展
Mar 15 PHP
PHP最常用的ini函数分析 针对PHP.ini配置文件
Apr 22 PHP
探讨:如何使用PHP实现计算两个日期间隔的年、月、周、日数
Jun 13 PHP
浅析php学习的路线图
Jul 10 PHP
PHP中如何实现常用邮箱的基本判断
Jan 07 PHP
thinkphp实现数组分页示例
Apr 13 PHP
浅谈php fopen下载远程文件的函数
Nov 18 PHP
PHP基于迭代实现文件夹复制、删除、查看大小等操作的方法
Aug 11 PHP
PHP常见加密函数用法示例【crypt与md5】
Jan 27 PHP
yii2 在控制器中验证请求参数的使用方法
Jun 19 PHP
Laravel 实现Eloquent模型分组查询并返回每个分组的数量 groupBy()
Oct 23 PHP
PHP中file_exists与is_file,is_dir的区别介绍
Sep 12 #PHP
PHP中几种常见的超时处理全面总结
Sep 11 #PHP
PHP UTF8中文字符截断函数代码
Sep 11 #PHP
php中将汉字转换成拼音的函数代码
Sep 08 #PHP
PHP json格式和js json格式 js跨域调用实现代码
Sep 08 #PHP
header跳转和include包含问题详解
Sep 08 #PHP
php比较多维数组中值的大小排序实现代码
Sep 08 #PHP
You might like
PHP页面间传递参数实例代码
2008/06/05 PHP
php防攻击代码升级版
2010/12/29 PHP
php批量缩放图片的代码[ini参数控制]
2011/02/11 PHP
判断PHP数组是否为空的代码
2011/09/08 PHP
php版微信js-sdk支付接口类用法示例
2016/10/12 PHP
两个Javascript小tip资料
2010/11/23 Javascript
你必须知道的Javascript知识点之"字面量和对应类型"说明介绍
2013/04/23 Javascript
jQuery获取和设置表单元素的方法
2014/02/14 Javascript
关闭时刷新父窗口两种方法
2014/05/07 Javascript
input标签内容改变的触发事件介绍
2014/06/18 Javascript
为什么JS中eval处理JSON数据要加括号
2015/04/13 Javascript
在Javascript中处理数组之toSource()方法的使用
2015/06/09 Javascript
基于jQuery实现中英文切换导航条效果
2016/09/18 Javascript
ES6字符串模板,剩余参数,默认参数功能与用法示例
2017/04/06 Javascript
BootStrap给table表格的每一行添加一个按钮事件
2017/09/07 Javascript
vue中的模态对话框组件实现过程
2018/05/01 Javascript
vuex提交state&&实时监听state数据的改变方法
2018/09/16 Javascript
关于单文件组件.vue的使用
2018/09/20 Javascript
基于Angular中ng-controller父子级嵌套的相关属性详解
2018/10/08 Javascript
在vue中利用v-html按分号将文本换行的例子
2019/11/14 Javascript
JS实现小星星特效
2019/12/24 Javascript
[03:06]V社市场总监Dota2项目负责人Erik专访:希望更多中国玩家加入DOTA2
2014/07/11 DOTA
[50:38]DOTA2-DPC中国联赛 正赛 Phoenix vs CDEC BO3 第二场 3月7日
2021/03/11 DOTA
在Linux中通过Python脚本访问mdb数据库的方法
2015/05/06 Python
Python的Django框架中的数据库配置指南
2015/07/17 Python
python日志记录模块实例及改进
2017/02/12 Python
Python入门_浅谈for循环、while循环
2017/05/16 Python
Python使用Tkinter实现滚动抽奖器效果
2020/01/06 Python
python等待10秒执行下一命令的方法
2020/07/19 Python
美国非常受欢迎的Spa品牌:Bliss必列斯
2018/04/10 全球购物
有趣、实用和鼓舞人心的产品:Inspire Uplift
2019/11/05 全球购物
会计大学生职业生涯规划书范文
2014/01/13 职场文书
2014年预备党员学习新党章思想汇报
2014/09/15 职场文书
行政主管岗位职责
2015/02/03 职场文书
《狮子和鹿》教学反思
2016/02/16 职场文书
vue @click.native 绑定原生点击事件
2022/04/22 Vue.js