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生成局部唯一识别码LUID的代码
Oct 06 PHP
php class中public,private,protected的区别以及实例分析
Jun 18 PHP
destoon出现验证码不显示时的紧急处理方法
Aug 22 PHP
ThinkPHP实现动态包含文件的方法
Nov 29 PHP
php通过baihui网API实现读取word文档并展示
Jun 22 PHP
10款实用的PHP开源工具
Oct 23 PHP
PHP多进程编程总结(推荐)
Jul 18 PHP
PHP简单预防sql注入的方法
Sep 27 PHP
Laravel 5.4因特殊字段太长导致migrations报错的解决
Oct 22 PHP
ThinkPHP 3使用OSS的方法
Jul 19 PHP
PHP利用递归函数实现无限级分类的方法
Mar 22 PHP
PHP使用反向Ajax技术实现在线客服系统详解
Jul 01 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调用三种数据库的方法(2)
2006/10/09 PHP
php setcookie(name, value, expires, path, domain, secure) 参数详解
2013/06/28 PHP
php简单实现多字节字符串翻转的方法
2015/03/31 PHP
PHP中header函数的用法及其注意事项详解
2016/06/13 PHP
php使用gd2绘制基本图形示例(直线、圆、正方形)
2017/02/15 PHP
JScript中的&quot;this&quot;关键字使用方式补充材料
2007/03/08 Javascript
JS event使用方法详解
2008/04/28 Javascript
屏蔽F1~F12的快捷键的js函数
2010/05/06 Javascript
jquery formValidator插件ajax验证 内容不做任何修改再离开提示错误的bug解决方法
2013/01/04 Javascript
jQuery extend 的简单实例
2013/09/18 Javascript
jquery删除提示框弹出是否删除对话框
2014/01/07 Javascript
fixedBox固定div漂浮代码支持ie6以上大部分主流浏览器
2014/06/26 Javascript
谈谈Jquery ajax中success和complete有哪些不同点
2015/11/20 Javascript
浅析jQuery Mobile的初始化事件
2015/12/03 Javascript
Ajax+FormData+javascript实现无刷新表单信息提交
2016/10/24 Javascript
Bootstrap popover用法详解
2016/12/22 Javascript
javascript 显示全局变量与隐式全局变量的区别
2017/02/09 Javascript
JQuery EasyUI的一些常用组件
2017/07/12 jQuery
js实现鼠标拖拽缩放div实例代码
2019/03/25 Javascript
详解Vue底部导航栏组件
2019/05/02 Javascript
[30:51]DOTA2上海特级锦标赛主赛事日 - 3 胜者组第二轮#1Liquid VS MVP.Phx第一局
2016/03/04 DOTA
Python贪吃蛇游戏编写代码
2020/10/26 Python
tensorflow识别自己手写数字
2018/03/14 Python
python读取文本中的坐标方法
2018/10/14 Python
基于Python实现船舶的MMSI的获取(推荐)
2019/10/21 Python
Python 解码Base64 得到码流格式文本实例
2020/01/09 Python
python logging 重复写日志问题解决办法详解
2020/08/04 Python
HTML5学习心得总结(推荐)
2016/07/08 HTML / CSS
TIME时代杂志台湾总代理:台时亚洲
2018/10/22 全球购物
广告学专业应届生求职信
2013/10/01 职场文书
建筑自我鉴定
2013/10/19 职场文书
公司试用期员工自我评价
2014/09/17 职场文书
2014乡镇干部对照检查材料思想汇报
2014/09/26 职场文书
2014年副班长工作总结
2014/12/10 职场文书
领导干部考核评语
2015/01/04 职场文书
Zabbix对Kafka topic积压数据监控的解决方案
2022/07/07 Servers