欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  php教程

php中is_file和file_exists与is_dir的区别

程序员文章站 2022-06-12 17:06:24
...
本文章介绍了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