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