我正在尝试考虑在PHP中实现不区分大小写的file_exists函数的最快方法。我最好的选择是枚举目录中的文件,并进行strtolower()与strtolower()的比较直到找到匹配项?
我使用注释中的源代码来创建此功能。返回完整路径文件(如果找到),否则返回FALSE。
在文件名中的目录名称上不区分大小写。
function fileExists($fileName, $caseSensitive = true) { if(file_exists($fileName)) { return $fileName; } if($caseSensitive) return false; // Handle case insensitive requests $directoryName = dirname($fileName); $fileArray = glob($directoryName . '/*', GLOB_NOSORT); $fileNameLowerCase = strtolower($fileName); foreach($fileArray as $file) { if(strtolower($file) == $fileNameLowerCase) { return $file; } } return false; }