好吧,如果我是在那種情況下,我會寫一個包裝圍繞包括:
function warned_include($file)
{
if(defined('DEBUG_ENV')) // define this somewhere else while in dev.
{
foreach(explode(PATH_SEPARATOR, get_include_path()) as $path)
{
// make sure the/is replaced with the OS native DIRECTORY_SEPARATOR
$fullPath = str_replace($path .DIRECTORY_SEPARATOR.$file, '/', DIRECTORY_SEPARATOR);
if(is_file($fullPath))
{
$spl = new SplFileInfo($fullPath);
if($spl->getPathname() != $fullPath)
{
echo 'case sensitivity mismatch for ' . $spl->getPathname();
}
break;
}
}
}
include $file;
}
我已經沒有機會測試它,但SplFileInfo從OS,獲取路徑下意味着它應該在Windows中具有正確的區分大小寫。
不要依賴大小寫不敏感的文件名嗎? –
所有這些答案都很好,但是在花時間來問這個問題並實現其中一個答案的時候,你可能只是修復了你的文件名。 –
對@ Rafe的評論...這似乎是一個壞習慣隨便命名文件。如果是我(不管是誰造成的),我會清理它。修復文件名稱,並傳遞函數/解決方法來撤銷它,這無疑會創建一個新的注意事項來在這裏發佈問題。 :) – Dawson