在PHP中,使用scandir()
函數讀取目錄時可能會遇到一些異常情況,例如權限問題或目錄不存在。為了處理這些異常,可以使用try-catch
語句來捕獲異常并給出相應的處理。
下面是一個使用try-catch
處理scandir()
異常的示例:
<?php
function scandirWithExceptionHandling($directory) {
try {
// 檢查目錄是否存在
if (!is_dir($directory)) {
throw new Exception("目錄不存在: " . $directory);
}
// 檢查是否有讀取權限
if (!is_readable($directory)) {
throw new Exception("沒有讀取權限: " . $directory);
}
// 使用scandir()讀取目錄
$files = scandir($directory);
// 過濾掉"."和".."的特殊目錄項
$filteredFiles = array_diff($files, array('.', '..'));
return $filteredFiles;
} catch (Exception $e) {
// 處理異常
echo "發生錯誤: " . $e->getMessage();
return [];
}
}
$directory = "path/to/your/directory";
$result = scandirWithExceptionHandling($directory);
print_r($result);
?>
在這個示例中,我們首先檢查目錄是否存在和是否具有讀取權限。如果發生異常,我們拋出一個自定義的Exception
對象,并在catch
塊中處理它。這樣,我們可以優雅地處理scandir()
函數可能遇到的異常情況。