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 相关文章推荐
PHP 和 HTML
Oct 09 PHP
优化NFR之一 --MSSQL Hello Buffer Overflow
Oct 09 PHP
用PHP写的MySQL数据库用户认证系统代码
Mar 22 PHP
php下连接mssql2005的代码
Jan 17 PHP
模板引擎正则表达式调试小技巧
Jul 20 PHP
PHP5常用函数列表(分享)
Jun 07 PHP
解析php函数method_exists()与is_callable()的区别
Jun 21 PHP
php实现可用于mysql,mssql,pg数据库操作类
Dec 13 PHP
php中header跳转使用include包含解决参数丢失问题
May 08 PHP
PHP中call_user_func_array回调函数的用法示例
Nov 26 PHP
php文件管理基本功能简单操作
Jan 16 PHP
如何在Laravel5.8中正确地应用Repository设计模式
Nov 26 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/08/18 PHP
PHP运行SVN命令显示某用户的文件更新记录的代码
2014/01/03 PHP
php通过数组实现多条件查询实现方法(字符串分割)
2014/05/06 PHP
php实现将HTML页面转换成word并且保存的方法
2016/10/14 PHP
Laravel学习教程之model validation的使用示例
2017/10/23 PHP
thinkPHP5框架导出Excel文件简单操作示例
2018/08/03 PHP
[转]JS宝典学习笔记
2007/02/07 Javascript
js select常用操作控制代码
2010/03/16 Javascript
Jquery下attr和removeAttr的使用方法
2010/12/28 Javascript
定义JavaScript二维数组采用定义数组的数组来实现
2012/12/09 Javascript
NodeJS学习笔记之Connect中间件模块(二)
2015/01/27 NodeJs
JavaScript中的函数(二)
2015/12/23 Javascript
JavaScript仿微博发布信息案例
2016/11/16 Javascript
vue之nextTick全面解析
2017/05/17 Javascript
vue配置接口域名方法总结
2019/05/12 Javascript
vue-iview动态新增和删除的方法
2020/06/17 Javascript
Python中给List添加元素的4种方法分享
2014/11/28 Python
Python数据结构与算法之图结构(Graph)实例分析
2017/09/05 Python
pandas按若干个列的组合条件筛选数据的方法
2018/04/11 Python
python实现向微信用户发送每日一句 python实现微信聊天机器人
2019/03/27 Python
TensorFlow dataset.shuffle、batch、repeat的使用详解
2020/01/21 Python
opencv 图像腐蚀和图像膨胀的实现
2020/07/07 Python
白宫黑市官网:White House Black Market
2016/11/17 全球购物
Lacoste澳大利亚官网:服装、鞋类及配饰
2018/11/14 全球购物
不用游标的SQL语句有哪些
2012/09/07 面试题
vue路由实现登录拦截
2021/03/24 Vue.js
怎么写好自荐信
2013/10/30 职场文书
优秀党支部事迹材料
2014/01/14 职场文书
政协调研汇报材料
2014/08/15 职场文书
创先争优个人承诺书
2014/08/30 职场文书
学生不讲诚信检讨书
2014/09/29 职场文书
实习生矿工检讨书
2014/10/13 职场文书
2015年收银工作总结范文
2015/04/01 职场文书
计划生育工作总结2015
2015/04/03 职场文书
卖车协议书范文
2016/03/23 职场文书
2016年暑期社会实践活动总结报告
2016/04/06 职场文书