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);

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM