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 相关文章推荐
ajax实现无刷新分页(php)
Jul 18 PHP
php站内搜索并高亮显示关键字的实现代码
Dec 29 PHP
PHP json_encode中文乱码问题的解决办法
Sep 09 PHP
php使用filter过滤器验证邮箱 ipv6地址 url验证
Dec 25 PHP
PHP中strlen()和mb_strlen()的区别浅析
Jun 19 PHP
PHP计算一年多少个星期和每周的开始和结束日期
Jul 01 PHP
php创建多级目录的方法
Mar 24 PHP
PHP实现二叉树的深度优先与广度优先遍历方法
Sep 28 PHP
yii添删改查实例
Nov 16 PHP
PHP页面跳转操作实例分析(header方法)
Sep 28 PHP
Laravel-添加后台模板AdminLte的实现方法
Oct 08 PHP
Laravel ORM 数据model操作教程
Oct 21 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
受疫情影响 动画《Re从零开始的异世界生活》第二季延期至7月
2020/03/10 日漫
PHP foreach遍历多维数组实现方式
2016/11/16 PHP
PHP两种实现无级递归分类的方法
2017/03/02 PHP
js checkbox(复选框) 使用集锦
2009/04/28 Javascript
iframe 父窗口和子窗口相互的调用方法集锦
2010/12/15 Javascript
JavaScript高级程序设计(第3版)学习笔记9 js函数(下)
2012/10/11 Javascript
nodejs获取本机内网和外网ip地址的实现代码
2014/06/01 NodeJs
Javascript学习笔记之数组的构造函数
2014/11/23 Javascript
JS实现鼠标滑过折叠与展开菜单效果代码
2015/09/06 Javascript
JS实现日期时间动态显示的方法
2015/12/07 Javascript
AngularJS 路由详解和简单实例
2016/07/28 Javascript
简单实现jquery焦点图
2016/12/12 Javascript
浅谈angular4 ng-content 中隐藏的内容
2017/08/18 Javascript
Express + Session 实现登录验证功能
2017/09/08 Javascript
Nodejs 微信小程序消息推送的实现
2021/01/20 NodeJs
nodejs处理tcp连接的核心流程
2021/02/26 NodeJs
python client使用http post 到server端的代码
2013/02/10 Python
使用Python求解最大公约数的实现方法
2015/08/20 Python
Python实现文件内容批量追加的方法示例
2017/08/29 Python
如何使用Python进行OCR识别图片中的文字
2019/04/01 Python
Python一行代码实现快速排序的方法
2019/04/30 Python
python 返回一个列表中第二大的数方法
2019/07/09 Python
Keras官方中文文档:性能评估Metrices详解
2020/06/15 Python
详解h5页面在不同ios设备上的问题总结
2019/03/01 HTML / CSS
加拿大在线隐形眼镜专家:PerfectLens.ca
2016/11/19 全球购物
体验完美剃须:The Art of Shaving
2018/08/06 全球购物
NHL官方在线商店:Shop.NHL.com
2020/05/01 全球购物
英语师范专业毕业生自荐信
2013/09/21 职场文书
初一家长会邀请函
2014/01/31 职场文书
《掌声》教学反思
2014/02/23 职场文书
报效祖国演讲稿
2014/09/15 职场文书
《7的乘法口诀》教学反思
2016/02/18 职场文书
《倍数和因数》教学反思
2016/02/23 职场文书
导游词之镇江焦山
2019/11/21 职场文书
详解JS WebSocket断开原因和心跳机制
2021/05/07 Javascript
Python中常见的反爬机制及其破解方法总结
2021/06/10 Python