PHP獲取目錄及子目錄下所有檔名
阿新 • • 發佈:2021-10-02
思路:首先獲取一個目錄下所有檔名可以使用 scandir() 函式。scandir() 函式返回指定目錄中的檔案和目錄的陣列。因為這個返回的資料不包含子目錄下檔案,所以可以使用遞迴來處理。
/** * @param $dir 要查詢的檔案路徑 * @param $dir_array 儲存檔名的陣列 */ function find_files($dir, &$dir_array) { // 讀取當前目錄下的所有檔案和目錄(不包含子目錄下檔案) $files = scandir($dir); if (is_array($files)) {foreach ($files as $val) { // 跳過. 和 .. if ($val == '.' || $val == '..') continue; // 判斷是否是目錄 if (is_dir($dir . '/' . $val)) { // 將當前目錄新增進陣列 $dir_array[$dir][] = $val; // 遞迴繼續往下尋找 find_files($dir. '/' . $val, $dir_array); } else { // 不是目錄也需要將當前檔案新增進陣列 $dir_array[$dir][] = $val; } } } } // 呼叫 $folder_list = array(); find_files('/demo/', $folder_list); var_dump($folder_list);