递归获取文件夹里面的文件 PHP 递归获取文件夹里面的文件
方法一
读取某个文件夹下的内容, 使用 opendir readdir结合while循环过滤,得到当前文件夹和父文件夹来操作
function readFolderFiles($path)
{
$list = [];
$resource = opendir($path);
while ($file = readdir($resource))
{
//排除根目录
if ($file != ".." && $file != ".")
{
//根目录下的文件
$list[] = $file;
}
}
closedir($resource);
return $list ? $list : [];
}
方法二
使用以下迭代器代码完成,不过效率还是不太高的,不如scandir快
比方法一好处就是不用判断根目录
function iteratorFolder($path)
{
$obj = new FilesystemIterator($path);
foreach ($obj as $key => $v)
{
$list[] = $v->getFilename();
}
return $list ? $list : [];
}
方法三
使用 scandir函数 可以扫描文件夹下内容 代替while循环读取
两行搞定
function scandirFolderfiles($path)
{
$list = scandir($path);
return $list;
}