為了避免在使用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()誤判的可能性。