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 相关文章推荐
基于mysql的bbs设计(五)
Oct 09 PHP
PHP面向对象的使用教程 简单数据库连接
Nov 25 PHP
PHP 变量类型的强制转换
Oct 23 PHP
解析curl提交GET,POST,Cookie的简单方法
Jun 29 PHP
php中利用explode函数分割字符串到数组
Feb 08 PHP
php用ini_get获取php.ini里变量值的方法
Mar 04 PHP
PHP使用fopen与file_get_contents读取文件实例分享
Mar 04 PHP
PHP单例模式是什么 php实现单例模式的方法
May 14 PHP
PHP解决中文乱码
Apr 28 PHP
ThinkPHP+EasyUI之ComboTree中的会计科目树形菜单实现方法
Jun 09 PHP
php+redis实现消息队列功能示例
Sep 19 PHP
Laravel框架表单验证操作实例分析
Sep 30 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过滤表单提交的html等危险代码
2014/11/03 PHP
关于php 高并发解决的一点思路
2017/04/16 PHP
php+ajax实现无刷新文件上传功能(ajaxuploadfile)
2018/02/11 PHP
PHP实现基于状态的责任链审批模式详解
2019/05/31 PHP
javascript写的一个模拟阅读小说的程序
2014/04/04 Javascript
原生的html元素选择器类似jquery选择器
2014/10/15 Javascript
js检测用户输入密码强度
2015/10/22 Javascript
文件上传的几个示例分享【推荐】
2016/12/16 Javascript
用最简单的方法判断JavaScript中this的指向(推荐)
2017/09/04 Javascript
jQuery实现的电子时钟效果完整示例
2018/04/28 jQuery
JS实现的文件拖拽上传功能示例
2018/05/21 Javascript
使用vue-router与v-if实现tab切换遇到的问题及解决方法
2018/09/07 Javascript
validform表单验证的实现方法
2019/03/08 Javascript
vue 中 命名视图的用法实例详解
2019/08/14 Javascript
解决使用layui对select append元素无效或者未及时更新的问题
2019/09/18 Javascript
JavaScript如何判断input数据类型
2020/02/06 Javascript
js 使用ajax设置和获取自定义header信息的方法小结
2020/03/12 Javascript
Python字符串转换成浮点数函数分享
2015/07/24 Python
python基础while循环及if判断的实例讲解
2017/08/25 Python
利用python爬取斗鱼app中照片方法实例
2017/12/03 Python
Python实现去除列表中重复元素的方法小结【4种方法】
2018/04/27 Python
Django 实现Admin自动填充当前用户的示例代码
2019/11/18 Python
python 函数嵌套及多函数共同运行知识点讲解
2020/03/03 Python
实例讲解使用HTML5 Canvas绘制阴影效果的方法
2016/03/25 HTML / CSS
HTML5 Canvas绘制五星红旗
2016/05/04 HTML / CSS
梅西百货澳大利亚:Macy’s Australia
2017/07/26 全球购物
伦敦高达60%折扣的钻石珠宝商:Purely Diamonds
2018/06/24 全球购物
Tenstickers法国:墙贴和装饰贴纸
2019/08/26 全球购物
应聘面试自我评价
2014/01/24 职场文书
学生社团文化节开幕式主持词
2014/03/28 职场文书
个人借款担保书
2014/04/02 职场文书
党日活动总结
2014/05/07 职场文书
销售员试用期自我评价
2014/09/15 职场文书
2014年采购部工作总结
2014/11/20 职场文书
感恩教育主题班会
2015/08/12 职场文书
乡镇团代会开幕词
2016/03/04 职场文书