有多种方法可以读取目录及子目录下所有文件名的方法,以下是其中两种常见的方法:
- 使用递归函数遍历目录和子目录:
function getFiles($dir) {
$files = [];
$handle = opendir($dir);
while (false !== ($file = readdir($handle))) {
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";
$files = getFiles($directory);
foreach ($files as $file) {
echo $file."\n";
}
- 使用RecursiveDirectoryIterator类和RecursiveIteratorIterator类:
$directory = "path/to/directory"; $iterator = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($directory)); foreach ($iterator as $file) { if ($file->isDir()) { continue; } echo $file->getPathname()."\n"; }
以上两种方法都可以遍历目录及其子目录下的所有文件名。根据具体情况选择合适的方法。