1. 程式人生 > 其它 >PHP獲取目錄及子目錄下所有檔名

PHP獲取目錄及子目錄下所有檔名

思路:首先獲取一個目錄下所有檔名可以使用 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);