方法一:
可以使用递归函数来获取所有子目录下的文件列表,以下是一个示例代码:
<?php
function getFiles($dir) {$files = [];if (is_dir($dir)) {$handle = opendir($dir);while (($file = readdir($handle)) !== false) {if ($file != '.' && $file != '..') {$path = $dir . '/' . $file;if (is_dir($path)) {$files = array_merge($files, getFiles($path));} else {$files[] = $path;}}}closedir($handle);}return $files;
}$directory = 'path/to/directory';
$fileList = getFiles($directory);foreach ($fileList as $file) {echo $file . "\n";
}
?>
请将path/to/directory
替换为您要获取文件列表的目录路径。该函数会递归遍历子目录,并返回所有文件的路径列表。然后,您可以使用foreach循环来遍历文件列表并输出文件路径。
方法二:
/*** 获取文件列表(所有子目录文件)** @param string $path 目录* @param array $file_list 存放所有子文件的数组* @param array $ignore_dir 需要忽略的目录或文件* @return array 数据格式的返回结果*/
function read_file_list($path, &$file_list, $ignore_dir = [])
{$path = rtrim($path, '/');if (is_dir($path)) {$handle = @opendir($path);if ($handle) {while (false !== ($dir = readdir($handle))) {if ($dir != '.' && $dir != '..') {if (!in_array($dir, $ignore_dir)) {if (is_file($path . '/' . $dir)) {$file_list[] = $path . '/' . $dir;} elseif (is_dir($path . '/' . $dir)) {read_file_list($path . '/' . $dir, $file_list, $ignore_dir);}}}}@closedir($handle);} else {return false;}} else {return false;}
}