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 HTML代码串 截取实现代码
Jun 29 PHP
php 调用远程url的六种方法小结
Nov 02 PHP
PHP 中文处理技巧
Apr 25 PHP
基于PHP5魔术常量与魔术方法的详解
Jun 13 PHP
PHP统一页面编码避免乱码问题
Apr 09 PHP
PHP 错误处理机制
Jul 06 PHP
php采用session实现防止页面重复刷新
Dec 24 PHP
php版微信公众平台接口参数调试实现判断用户行为的方法
Sep 23 PHP
PHP实现接收二进制流转换成图片的方法
Jan 10 PHP
php使用curl代理实现抓取数据的方法
Feb 03 PHP
PHP Pipeline 实现中间件的示例代码
Apr 26 PHP
利用PHP内置SERVER开启web服务(本地开发使用)
Mar 09 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
mysql 中InnoDB和MyISAM的区别分析小结
2008/04/15 PHP
php设计模式 State (状态模式)
2011/06/26 PHP
PHP记录页面停留时间的方法
2016/03/30 PHP
关于php中一些字符串总结
2016/05/05 PHP
用YUI做了个标签浏览效果
2007/02/20 Javascript
jquery1.4后 jqDrag 拖动 不可用
2010/02/06 Javascript
jquery中获得元素尺寸和坐标的方法整理
2014/05/18 Javascript
基于JS实现的倒计时程序实例
2015/07/24 Javascript
jQuery实现折叠、展开的菜单组效果代码
2015/09/16 Javascript
node.js 中国天气预报 简单实现
2016/06/06 Javascript
javaScript语法总结
2016/11/25 Javascript
详解Js中的模块化是如何实现的
2017/10/18 Javascript
Bootstrap开发中Tab标签页切换图表显示问题的解决方法
2018/07/13 Javascript
浅析Vue实例以及生命周期
2018/08/14 Javascript
jQuery访问json文件中数据的方法示例
2019/01/28 jQuery
Vue 组件注册实例详解
2019/02/23 Javascript
vue组件间通信六种方式(总结篇)
2019/05/15 Javascript
如何在Angular8.0下使用ngx-translate进行国际化配置
2019/07/24 Javascript
解决在layer.open中使用时间控件laydate失败的问题
2019/09/11 Javascript
vue实现点击出现操作弹出框的示例
2020/11/05 Javascript
JavaScript 声明私有变量的两种方式
2021/02/05 Javascript
Django生成PDF文档显示在网页上以及解决PDF中文显示乱码的问题
2019/07/04 Python
python匿名函数lambda原理及实例解析
2020/02/07 Python
Python生成随机验证码代码实例解析
2020/06/09 Python
Keras 实现加载预训练模型并冻结网络的层
2020/06/15 Python
如何利用python之wxpy模块玩转微信
2020/08/17 Python
T3官网:头发造型工具
2019/12/26 全球购物
新闻网站实习自我鉴定
2013/09/25 职场文书
营销专业应届生求职信
2013/11/26 职场文书
小溪流的歌教学反思
2014/02/13 职场文书
党课培训主持词
2014/04/01 职场文书
开除通知书范本
2015/04/25 职场文书
教研活动主持词
2015/07/03 职场文书
一文搞懂redux在react中的初步用法
2021/06/09 Javascript
Kubernetes部署实例并配置Deployment、网络映射、副本集
2022/04/01 Servers
Java界面编程实现界面跳转
2022/06/16 Java/Android