首页  >  文章  >  php教程  >  php中is_file和file_exists与is_dir的区别

php中is_file和file_exists与is_dir的区别

WBOY
WBOY原创
2016-06-13 10:01:43902浏览

本文章介绍了php中is_file和file_exists与is_dir的区别,有需要的朋友可参考一下。

is_file 只判断文件是否存在;

 代码如下 复制代码


$file = "test.txt";   
if(is_file($file)) {   
echo ("$file is a regular file");   
}else {   
echo ("$file is not a regular file");   
}   
?>   

输出:test.txt is a regular file

file_exists 判断文件是否存在或者是目录是否存在;

 代码如下 复制代码

echo file_exists("test.txt");
?>

输入

1

is_dir 判断目录是否存在;

例子

 代码如下 复制代码

$file = "images";
if(is_dir($file))
  {
  echo ("$file is a directory");
  }
else
  {
  echo ("$file is not a directory");
  }
?>

输出:

images is a directory

查看手册,虽然这两个函数的结果都会被缓存,但是is_file却快了N倍。

还有一个值得注意的:

文件存在的情况下,is_file比file_exists要快N倍;
文件不存在的情况下,is_file比file_exists要慢;
结论是,file_exits函数并不会因为该文件是否真的存在而影响速度,但是is_file影响就大了

测试

 代码如下 复制代码

文件存在(当前目录)
is_file:0.4570ms
file_exists:2.0640ms
文件存在(绝对路径3层/www/hx/a/)
is_file:0.4909ms
file_exists:3.3500ms
文件存在(绝对路径5层/www/hx/a/b/c/)
is_file:0.4961ms
file_exists:4.2100ms
文件不存在(当前目录)
is_file:2.0170ms
file_exists:1.9848ms
文件不存在(绝对路径5层/www/hx/a/b/c/)
is_file:4.1909ms
file_exists:4.1502ms
目录存在
file_exists:2.9271ms
is_dir:0.4601ms
目录不存在
file_exists:2.9719ms
is_dir:2.9359ms

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn