is_file和file_exists效率比较

is_file() 和 file_exists() 函数,虽然说都可以正常运行,但是:is_file 和 file_exists两者效率比较起来,谁的运行速度更快呢?于是,做了一个小测试:

Posted in PHP onMarch 14, 2021
<?php
$start_time = get_microtime();
for($i=0;$i<10000;$i++)//默认1万次,可手动修改
{
if(is_file('test.txt')) {
//do nothing;
}
}
echo 'is_file-->'.(get_microtime() - $start_time).'<br>';
$start_time = get_microtime();
for($i=0;$i<10000;$i++)//默认1万次,可手动修改
{
if(file_exists('test.txt')) {
 //do nothing;
}
}
echo 'file_exits-->'.(get_microtime() - $start_time).'<br>';
function get_microtime()//时间
{
list($usec, $sec) = explode(' ', microtime());
return ((float)$usec + (float)$sec);
}
?>

一、is_file和file_exists效率比较 测试结果

 

1、当文件存在时:

 

运行1万次:

is_file–>0.0067121982574463

file_exits–>0.11532402038574

 

运行10万次:

is_file–>0.069056034088135

file_exits–>1.1521670818329

 

当运行100万次:

is_file–>0.6924250125885

file_exits–>11.497637987137

 

2、当文件不存在时:

 

运行1万次:

is_file–>0.72184419631958

file_exits–>0.71474003791809

 

运行10万次:

is_file–>7.1535291671753

file_exits–>7.0911409854889

 

当运行100万次:

is_file–>72.042867183685

file_exits–>71.789203166962

超过1分钟了,别忘了在php第一行加句:set_time_limit(120);//时间限制120秒

 

二、is_dir()对比file_exists()效率比较 测试结果

当目录存在时,运行1万次

is_dir–>0.0058560371398926

file_exits–>0.11063098907471

 

当目录不存在时,运行1万次

is_dir–>0.7159481048584

file_exits–>0.71305584907532

 

最终得出结论:

is_file()和file_exists()效率比较,结果当文件存在时,is_file函数比file_exists函数速度快14倍,当文件不存在时,两者速度相当。

同理,当文件目录存在时,is_dir()比file_exists()快18倍。不存在时两者效率相当。PHP的file_exists = is_dir + is_file。

如果要判断目录是否存在,请优先考虑函数 is_dir(directory)。

如果要判断文件是否存在,请优先考虑函数 is_file(filepath)。

 

 

PHP 相关文章推荐
Zend Studio for Eclipse的java.lang.NullPointerException错误的解决方法
Dec 06 PHP
PHP 获取MSN好友列表的代码(2009-05-14测试通过)
Sep 09 PHP
php的字符串用法小结
Jun 08 PHP
PHP学习笔记之一
Jan 17 PHP
10个实用的PHP正则表达式汇总
Oct 23 PHP
Yii框架登录流程分析
Dec 03 PHP
PHPStrom中实用的功能和快捷键大全
Sep 23 PHP
Yii统计不同类型邮箱数量的方法
Oct 18 PHP
thinkPHP框架实现多表查询的方法
Jun 14 PHP
ThinkPHP5 的简单搭建和使用详解
Nov 15 PHP
tp5(thinkPHP5)框架连接数据库的方法示例
Dec 24 PHP
PHP超全局变量实现原理及代码解析
Sep 01 PHP
宝塔面板出现“open_basedir restriction in effect. ”的解决方法
open_basedir restriction in effect. 原因与解决方法
Mar 14 #PHP
aec加密 php_php aes加密解密类(兼容php5、php7)
Mar 14 #PHP
PHP配置文件php.ini中打开错误报告的设置方法
Jan 09 #PHP
imagettftext() 失效,不起作用
Mar 09 #PHP
PHP高并发和大流量解决方案整理
Mar 09 #PHP
PHP获取php,mysql,apche的版本信息及更多服务器信息
Mar 09 #PHP
You might like
PHP中使用CURL伪造来路抓取页面或文件
2011/05/04 PHP
ThinkPHP实现事务回滚示例代码
2014/06/23 PHP
php中explode函数用法分析
2014/11/15 PHP
yii实现使用CUploadedFile上传文件的方法
2015/12/28 PHP
PHP多维数组指定多字段排序的示例代码
2018/05/16 PHP
Laravel框架自定义公共函数的引入操作示例
2019/04/16 PHP
Bootstrap多级导航栏(级联导航)的实现代码
2016/03/08 Javascript
JS跨域交互(jQuery+php)之jsonp使用心得
2016/07/01 Javascript
Bootstrap CSS布局之表单
2016/12/17 Javascript
纯原生js实现table表格的增删
2017/01/05 Javascript
在 Node.js 中使用原生 ES 模块方法解析
2017/09/19 Javascript
浅谈Vue数据响应思路之数组
2018/11/06 Javascript
vue实现可视化可拖放的自定义表单的示例代码
2019/03/20 Javascript
微信sdk实现禁止微信分享(使用原生php实现)
2019/11/15 Javascript
解决echarts vue数据更新,视图不更新问题(echarts嵌在vue弹框中)
2020/07/20 Javascript
Python中正则表达式的详细教程
2015/04/30 Python
Python数据类型详解(四)字典:dict
2016/05/12 Python
Python中使用装饰器来优化尾递归的示例
2016/06/18 Python
python 判断是否为正小数和正整数的实例
2017/07/23 Python
python监控linux内存并写入mongodb(推荐)
2017/09/11 Python
python保存网页图片到本地的方法
2018/07/24 Python
python opencv实现图片旋转矩形分割
2018/07/26 Python
Python中GIL的使用详解
2018/10/03 Python
python获取指定日期范围内的每一天,每个月,每季度的方法
2019/08/08 Python
宝塔面板成功部署Django项目流程(图文)
2020/06/22 Python
Python 如何实现数据库表结构同步
2020/09/29 Python
HTML5中外部浏览器唤起微信分享
2020/01/02 HTML / CSS
如果重写了对象的equals()方法,需要考虑什么
2014/11/02 面试题
电信专业毕业生推荐信
2013/11/18 职场文书
年终晚会主持词
2014/03/25 职场文书
给妈妈洗脚活动方案
2014/08/16 职场文书
会计试用期自我评价
2015/03/10 职场文书
单位领导婚礼致辞
2015/07/28 职场文书
nginx基于域名,端口,不同IP的虚拟主机设置的实现
2021/03/31 Servers
Golang实现AES对称加密的过程详解
2021/05/20 Golang
Python基础之条件语句详解
2021/06/16 Python