为了避免在使用file_exists()
函数时出现误判,你可以采取以下措施:
file_exists()
的参数是文件的绝对路径,而不是相对路径。这样可以避免因为当前工作目录不同而导致的误判。$filename = '/path/to/your/file.txt';
if (file_exists($filename)) {
// 文件存在
} else {
// 文件不存在
}
file_exists()
可能会误判文件不存在。$filename = '/path/to/your/file.txt';
if (is_readable($filename)) {
if (file_exists($filename)) {
// 文件存在且可读
} else {
// 文件不存在
}
} else {
// 文件不可读
}
fileinfo
扩展:如果你对文件的详细信息感兴趣,可以使用fileinfo
扩展来获取更多信息,而不仅仅是检查文件是否存在。$filename = '/path/to/your/file.txt';
if (file_exists($filename)) {
$finfo = finfo_open(FILEINFO_MIME_TYPE);
$mimeType = finfo_file($finfo, $filename);
finfo_close($finfo);
// 根据文件类型执行相应操作
} else {
// 文件不存在
}
DirectoryIterator
或RecursiveDirectoryIterator
遍历目录:如果你需要检查目录中是否存在某个文件,可以使用DirectoryIterator
或RecursiveDirectoryIterator
遍历目录。$directory = '/path/to/your/directory';
$filename = 'file.txt';
foreach (new DirectoryIterator($directory) as $entry) {
if ($entry->getFilename() === $filename) {
// 文件存在
break;
}
}
if (!$entry) {
// 文件不存在
}
通过采取这些措施,你可以降低file_exists()
误判的可能性。