首頁 >後端開發 >php教程 >如何在 PHP 中檢索子目錄,排除根目錄和目錄遍歷指示符?

如何在 PHP 中檢索子目錄,排除根目錄和目錄遍歷指示符?

Linda Hamilton
Linda Hamilton原創
2024-11-14 14:35:02977瀏覽

How to Retrieve Subdirectories in PHP, Excluding Root and Directory Traversal Indicators?

使用PHP 檢索子目錄

在PHP 中,您可能會遇到需要存取特定目錄內的所有子目錄,不包括根目錄和目錄遍歷指標。以下是如何使用兩種不同的方法來實現此目的。

選項 1:利用 glob()

glob() 函數提供了一個列出檔案和目錄的簡單方法來匹配特定的模式。若要僅擷取子目錄,請將其與 GLOB_ONLYDIR 選項一起使用:

$subdirectories = glob('*/*', GLOB_ONLYDIR);

選項 2:使用 array_filter

array_filter 允許您根據回呼函數過濾數組數組。您可以使用它透過排除“.”來識別子目錄。和“..”並過濾glob() 結果:

function is_subdirectory($item) { return is_dir($item) && $item != '.' && $item != '..'; }
$subdirectories = array_filter(glob('*'), 'is_subdirectory');

在函數中的使用

一旦有了子目錄數組,就可以將它傳遞到函數進行進一步處理。例如,以下函數列印所有子目錄的路徑:

function print_subdirectory_paths($subdirectories) {
  foreach ($subdirectories as $subdirectory) {
    echo $subdirectory . PHP_EOL;
  }
}

以上是如何在 PHP 中檢索子目錄,排除根目錄和目錄遍歷指示符?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn