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函数
Jan 11 PHP
Godaddy空间Zend Optimizer升级方法
May 10 PHP
php获取post中的json数据的实现方法
Jun 08 PHP
php源代码安装常见错误与解决办法分享
May 28 PHP
php加密解密实用类分享
Jan 07 PHP
用PHP解决的一个栈的面试题
Jul 02 PHP
php堆排序实现原理与应用方法
Jan 03 PHP
php以fastCGI的方式运行时文件系统权限问题及解决方法
May 11 PHP
php中smarty实现多模版网站的方法
Jun 11 PHP
基于ThinkPHP实现的日历功能实例详解
Apr 15 PHP
PHP实现多图上传和单图上传功能
May 17 PHP
PHP生成随机密码4种方法及性能对比
Dec 11 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正则走开
2008/03/15 PHP
一个PHP的QRcode类与大家分享
2011/11/13 PHP
php setcookie函数的参数说明及其用法
2014/04/20 PHP
PHP中使用正则表达式提取中文实现笔记
2015/01/20 PHP
php进程间通讯实例分析
2016/07/11 PHP
laravel框架邮箱认证实现方法详解
2019/11/22 PHP
javascript编程起步(第七课)
2007/01/10 Javascript
ASP.NET jQuery 实例18 通过使用jQuery validation插件校验DropDownList
2012/02/03 Javascript
JavaScript 获取任一float型小数点后两位的小数
2014/06/30 Javascript
bootstrap table 服务器端分页例子分享
2015/02/10 Javascript
jQuery插件Elastislide实现响应式的焦点图无缝滚动切换特效
2015/04/12 Javascript
浏览器环境下JavaScript脚本加载与执行探析之动态脚本与Ajax脚本注入
2016/01/19 Javascript
详解AngularJS中的http拦截
2016/02/09 Javascript
Vue.js动态添加、删除选题的实例代码
2016/09/30 Javascript
javascript实现根据函数名称字符串动态执行函数的方法示例
2016/12/28 Javascript
基于MVC方式实现三级联动(JavaScript)
2017/01/23 Javascript
详解layui中的树形关于取值传值问题
2018/01/16 Javascript
JavaScript之解构赋值的理解
2019/01/30 Javascript
jquery多级树形下拉菜单的实例代码
2019/07/09 jQuery
vue使用原生swiper代码实例
2020/02/05 Javascript
[01:00:04]DOTA2上海特级锦标赛B组小组赛#1 Alliance VS Spirit第二局
2016/02/26 DOTA
Python中用Descriptor实现类级属性(Property)详解
2014/09/18 Python
跟老齐学Python之有容乃大的list(4)
2014/09/28 Python
菜鸟使用python实现正则检测密码合法性
2016/01/05 Python
Python实现批量执行同目录下的py文件方法
2019/01/11 Python
Python实现多态、协议和鸭子类型的代码详解
2019/05/05 Python
Python 图像处理: 生成二维高斯分布蒙版的实例
2019/07/04 Python
python 字符串追加实例
2019/07/20 Python
详解Python中string模块除去Str还剩下什么
2020/11/30 Python
介绍一下Linux内核的排队自旋锁
2014/08/27 面试题
群众路线教育实践活动学习笔记
2014/11/05 职场文书
单位婚育证明范本
2014/11/21 职场文书
酒店辞职信怎么写
2015/02/27 职场文书
加薪申请书应该这样写!
2019/07/04 职场文书
人事行政部各岗位职责说明书!
2019/07/15 职场文书
七年级作文(600字3篇)
2019/09/24 职场文书