如何查找目录或文件夹及其子目录或子文件夹的所有文件名。
我正在使用scandir()
,但它仅从根目录返回文件和子目录名称。
如果有人有解决方案,请建议。
<?php
$dir = 'mydir/';
$files = scandir($dir);
?>
答案 0 :(得分:0)
试试这个
$filelist = array();
if ($handle = opendir("."))
{
while ($entry = readdir($handle)) {
if (is_file($entry)) {
$filelist[] = $entry;
}
}
echo "<pre>";
print_r($filelist);
closedir($handle);
}
答案 1 :(得分:0)
答案here可以为您提供更多亮点。
我会做什么(比如在答案中)是为每个目录运行一个foreach循环,然后列出目录中的文件。基本上只需冲洗并重复。 PHP执行的scandir()
函数类似于Linux中的ls
命令。
答案 2 :(得分:0)
这是我在我的项目中使用的,这只会返回文件而不是文件夹,而且它是递归的。
$dir = new RecursiveIteratorIterator(new RecursiveDirectoryIterator("mydir/") );
$dir->setFlags(4096 | 8192);
foreach ($dir as $value) {
echo $dir->getSubPathname();
}
答案 3 :(得分:0)
我找到了解决方案。 我创建了一个脚本,通过使用它,我们可以获取或列出目录及其子目录的所有文件。 它的工作正常。在那里mydir假定为目录路径
function listDirFiles($dir){
foreach(glob("$dir/*") as $ff){
is_dir($ff) ? listDirFiles($ff) : $GLOBALS['a'][] = basename($ff);
}
}
listDirFiles('mydir');
echo "<pre>", print_r($GLOBALS['a']), "</pre>";