PHP 文件处理:检测目录是否存在 Draft
欲对目录或目录中的文件进行操作时,应先行检测目录是否存在,否则可能会引发异常或错误,PHP 提供了两个函数用于检测目录是否存在:file_exists()
和 is_dir()
。
file_exists() 函数
检测目录(或文件)是否存在,如果存在则返回 TRUE,否则返回 FALSE。
示例
检测脚本文件所在目录是否存在 sample 子目录。
<?php
$path = __DIR__.'/sample';
if (file_exists($path)) {
echo "目录或文件存在\n";
} else {
echo "目录或文件不存在\n";
}
?>
注意:
file_exists()
函数不仅检测是否存在指定名称的目录,也检测是否存在指定名称的文件。这就可能存在一个潜在的坑,即不存在指定名称的目录,但存在指定名称的文件,也返回 TRUE。
is_dir() 函数
检测目录是否存在,如果存在则返回 TRUE,否则返回 FALSE。
示例
检测脚本文件所在目录是否存在 sample 子目录。
<?php
$path = __DIR__.'/sample';
if (is_dir($path)) {
echo "目录存在\n";
} else {
echo "目录不存在\n";
}
?>
结语
在实际开发中,推荐使用 is_dir()
函数检测目录是否存在,因为其无歧义且根据测试,它的执行效率要高于 file_exist()
函数。