本文章介绍了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
|