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之对抗Web扫描器的脚本技巧
Oct 01 PHP
php.ini-dist 和 php.ini-recommended 的区别介绍(方便开发与安全的朋友)
Jul 01 PHP
Linux下CoreSeek及PHP扩展模块的安装
Sep 23 PHP
php采用curl访问域名返回405 method not allowed提示的解决方法
Jun 26 PHP
PHP实现绘制3D扇形统计图及图片缩放实例
Oct 01 PHP
php+ajax实现无刷新分页的方法
Nov 04 PHP
PHP答题类应用接口实例
Feb 09 PHP
thinkphp实现163、QQ邮箱收发邮件的方法
Dec 18 PHP
smarty的section嵌套循环用法示例
May 28 PHP
详解Yii2 rules 的验证规则
Dec 02 PHP
php操作redis数据库常见方法实例总结
Feb 20 PHP
基于php伪静态的实现方法解析
Jul 31 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 小心urldecode引发的SQL注入漏洞
2011/10/27 PHP
discuz免激活同步登入代码修改方法(discuz同步登录)
2013/12/24 PHP
PHP字符串word末字符实现大小写互换的方法
2014/11/10 PHP
php使用parse_url和parse_str解析URL
2015/02/22 PHP
文本框的字数限制功能jquery插件
2009/11/24 Javascript
Jquery实现显示和隐藏的4种简单方式
2013/08/28 Javascript
js Dialog 去掉右上角的X关闭功能
2014/04/23 Javascript
基于jQuery实现的图片切换焦点图整理
2014/12/07 Javascript
jQuery Validate验证框架经典大全
2015/09/23 Javascript
JS获取屏幕高度的简单实现代码
2016/05/24 Javascript
浅谈nodejs中的类定义和继承的套路
2017/07/26 NodeJs
webpack构建的详细流程探底
2018/01/08 Javascript
cocos2dx+lua实现橡皮擦功能
2018/12/20 Javascript
关于layui 实现点击按钮添加一行(方法渲染创建的table)
2019/09/29 Javascript
JS浏览器BOM常见操作实例详解
2020/04/27 Javascript
Ant Design的Table组件去除
2020/10/24 Javascript
适用于 Vue 的播放器组件Vue-Video-Player操作
2020/11/16 Javascript
Python中用max()方法求最大值的介绍
2015/05/15 Python
python安装oracle扩展及数据库连接方法
2017/02/21 Python
动态规划之矩阵连乘问题Python实现方法
2017/11/27 Python
Python模拟自动存取款机的查询、存取款、修改密码等操作
2018/09/02 Python
WxPython建立批量录入框窗口
2019/02/27 Python
解决Python 异常TypeError: cannot concatenate 'str' and 'int' objects
2020/04/08 Python
MAC平台基于Python Appium环境搭建过程图解
2020/08/13 Python
boostrap modal 闪现问题的解决方法
2020/09/01 HTML / CSS
新百伦折扣店:Joe’s New Balance Outlet
2016/08/20 全球购物
TripAdvisor台湾:全球最大旅游网站
2018/08/26 全球购物
营销与策划个人求职信
2013/09/22 职场文书
前台接待的工作职责
2013/11/21 职场文书
员工年终演讲稿
2014/01/03 职场文书
土木工程专业推荐信
2014/02/19 职场文书
2015年依法治校工作总结
2015/07/27 职场文书
2016秋季运动会开幕词
2016/03/04 职场文书
教师学期述职自我鉴定
2019/08/16 职场文书
python中sqllite插入numpy数组到数据库的实现方法
2021/06/21 Python
html中相对位置与绝对位置的具体使用
2022/05/15 HTML / CSS