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实现的百度搜索某地天气的小偷代码
Apr 23 PHP
PHP实现在线阅读PDF文件的方法
Jun 23 PHP
php实现CSV文件导入和导出
Oct 24 PHP
WordPress特定文章对搜索引擎隐藏或只允许搜索引擎查看
Dec 31 PHP
PHP使用strstr()函数获取指定字符串后所有字符的方法
Jan 07 PHP
简单了解WordPress开发中update_option()函数的用法
Jan 11 PHP
Thinkphp3.2.3整合phpqrcode生成带logo的二维码
Jul 21 PHP
详解PHP归并排序的实现
Oct 18 PHP
php获取ajax的headers方法与内容实例
Dec 27 PHP
PHP内置函数生成随机数实例
Jan 18 PHP
laravel框架使用极光推送消息操作示例
Feb 15 PHP
浅谈如何提高PHP代码质量之端到端集成测试
May 28 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
什么是调频(FM)、调幅(AM)、短波(SW)、长波(LW)
2021/03/01 无线电
随机头像PHP版
2006/10/09 PHP
PHP6 先修班 JSON实例代码
2008/08/23 PHP
PHP判断浏览器、判断语言代码分享
2015/03/05 PHP
jquery ui 1.7 ui.tabs 动态添加与关闭(按钮关闭+双击关闭)
2010/04/01 Javascript
基于jQuery的可以控制左右滚动及自动滚动效果的代码
2010/07/25 Javascript
js监听输入框值的即时变化onpropertychange、oninput
2011/07/13 Javascript
js 使用form表单select类实现级联菜单效果
2012/12/19 Javascript
open 动态修改img的onclick事件示例代码
2013/11/13 Javascript
js利用事件的阻止冒泡实现点击空白模态框的隐藏
2014/01/24 Javascript
Backbone.js的一些使用技巧
2015/07/01 Javascript
jQuery flip插件实现的翻牌效果示例【附demo源码下载】
2016/09/20 Javascript
js编写三级联动简单案例
2016/12/21 Javascript
js实现日历与定时器
2017/02/22 Javascript
详解angularjs获取元素以及angular.element()用法
2017/07/25 Javascript
实例分析js事件循环机制
2017/12/13 Javascript
搭建element-ui的Vue前端工程操作实例
2018/02/23 Javascript
ES6 对象的新功能与解构赋值介绍
2019/02/05 Javascript
微信公众号平台接口开发 菜单管理的实现
2019/08/14 Javascript
JS控制GIF图片的停止与显示
2019/10/24 Javascript
利用Python批量提取Win10锁屏壁纸实战教程
2018/03/27 Python
对numpy Array [: ,] 的取值方法详解
2018/07/02 Python
python生成n个元素的全组合方法
2018/11/13 Python
Python文件常见操作实例分析【读写、遍历】
2018/12/10 Python
python能开发游戏吗
2020/06/11 Python
Python requests模块安装及使用教程图解
2020/06/30 Python
数控技术应届生求职信
2013/11/13 职场文书
英语自荐信范文
2013/12/11 职场文书
《老王》教学反思
2014/02/23 职场文书
保护环境的标语
2014/06/09 职场文书
家庭贫困证明
2014/09/23 职场文书
党性分析自查总结
2014/10/14 职场文书
广告业务员岗位职责
2015/02/13 职场文书
2015秋季幼儿园开学寄语
2015/03/25 职场文书
刑事法律意见书
2015/06/04 职场文书
mybatis中注解与xml配置的对应关系和对比分析
2021/08/04 Java/Android