如何检查 PHP 中文件夹是否存在:is_dir、file_exists 还是两者都用?
大家好!我是 PHP 新手,正在编写一个将文件上传到服务器的脚本。我需要检查用于保存文件的目录是否存在。如果不存在,则创建它。
我遇到了两个函数:is_dir() 和 file_exists()。现在我不明白该用哪一个。这是我的代码:
$path = '/uploads/images/';
// 选项 1
if (is_dir($path)) {
echo "文件夹存在";
} else {
mkdir($path, 0777, true);
}
// 选项 2
if (file_exists($path)) {
echo "文件夹存在";
} else {
mkdir($path, 0777, true);
}
两个选项似乎都能工作,但我注意到一个奇怪的行为。如果指定的是文件路径而不是文件夹路径,file_exists() 返回 true,而 is_dir() 返回 false。这让人困惑。
我还读到 file_exists() 会缓存结果,这可能导致错误。而 is_dir() 不会。但我没有