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 相关文章推荐
php生成随机密码的三种方法小结
Sep 04 PHP
PHP获取用户的浏览器与操作系统信息的代码
Sep 04 PHP
解析PHP多种序列化与反序列化的方法
Jun 06 PHP
浅谈php错误提示及查错方法
Jul 14 PHP
PHP的Yii框架中YiiBase入口类的扩展写法示例
Mar 17 PHP
PHP单链表的实现代码
Jul 05 PHP
Zend Framework使用Zend_Loader组件动态加载文件和类用法详解
Dec 09 PHP
php使用PDO获取结果集的方法
Feb 16 PHP
详解Yii2高级版引入bootstrap.js的一个办法
Mar 21 PHP
IOS 开发之NSDictionary转换成JSON字符串
Aug 14 PHP
详解PHP版本兼容之openssl调用参数
Jul 25 PHP
PHP生成指定范围内的N个不重复的随机数
Mar 18 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
Laravel框架中实现使用阿里云ACE缓存服务
2015/02/10 PHP
php将12小时制转换成24小时制的方法
2015/03/31 PHP
php字符串过滤strip_tags()函数用法实例分析
2019/06/24 PHP
JQuery Easyui Tree的oncheck事件实现代码
2010/05/28 Javascript
使用apply方法处理数组的三个技巧[译]
2012/09/20 Javascript
jquery监听div内容的变化具体实现思路
2013/11/04 Javascript
jquery内置验证(validate)使用方法示例(表单验证)
2013/12/04 Javascript
jquery插件jquery.nicescroll实现图片无滚动条左右拖拽的方法
2015/08/10 Javascript
JavaScript中的call方法和apply方法使用对比
2015/08/12 Javascript
基于jQuery实现交互体验社会化分享代码附源码下载
2016/01/04 Javascript
基于jQuery倒计时插件实现团购秒杀效果
2016/05/13 Javascript
获取JavaScript异步函数的返回值
2016/12/21 Javascript
使用Browserify来实现CommonJS的浏览器加载方法
2017/05/14 Javascript
JS实现中英文混合文字溢出友好截取功能
2018/08/06 Javascript
JavaScript时间日期操作实例小结【5个示例】
2018/12/22 Javascript
vue项目使用.env文件配置全局环境变量的方法
2019/10/24 Javascript
VUE 单页面使用 echart 窗口变化时的用法
2020/07/30 Javascript
全网小程序接口请求封装实例代码
2020/11/06 Javascript
[01:33]一分钟玩转DOTA2第三弹:DOTA2&DotA快捷操作大对比
2014/06/04 DOTA
用Python进行一些简单的自然语言处理的教程
2015/03/31 Python
python-opencv颜色提取分割方法
2018/12/08 Python
python实现生成字符串大小写字母和数字的各种组合
2019/01/01 Python
Python中使用pypdf2合并、分割、加密pdf文件的代码详解
2019/05/21 Python
python射线法判断检测点是否位于区域外接矩形内
2019/06/28 Python
python scipy卷积运算的实现方法
2019/09/16 Python
使用python实现回文数的四种方法小结
2019/11/24 Python
浅谈TensorFlow中读取图像数据的三种方式
2020/06/30 Python
Python中实现一行拆多行和多行并一行的示例代码
2020/09/06 Python
css3 background属性调整增强介绍
2010/12/18 HTML / CSS
简单介绍HTML5中audio标签的使用
2015/09/24 HTML / CSS
八皇后问题,输出了所有情况,不过有些结果只是旋转了90度
2016/08/15 面试题
法学毕业生自我鉴定
2014/01/31 职场文书
机电系毕业生求职信
2014/07/11 职场文书
医生辞职信范文
2015/03/02 职场文书
合同纠纷调解书
2015/05/20 职场文书
教师年度考核自我评鉴
2015/08/11 职场文书