php 取目录下所有文件,可遍历子目录,
<?php
// getFolderFiles 取 $folder下所有完整路径文件名 (无目录), $ergodic 表示 是否遍历子目录,默认不遍历
// 返回 array 如 [ 'f:/abc/tmp0/a.txt', 'f:/abc/tmp0/b.txt', 'f:/abc/tmp0/dic1/a.txt' ]
function getFolderFiles($folder, $ergodic = false) {
//首先先读取文件夹
$names = scandir($folder);
$getnamelist = [];
//
foreach ($names as $name) {
$fullname = $folder . '/' . $name;
if (is_dir($fullname)) {//如果是文件夹则执行
if($ergodic == false) {
continue;
}
if ($name == '.' || $name == '..') {//判断是否为系统隐藏的文件.和.. 如果是则跳过否则就继续往下走,防止无限循环再这里。
continue;
}
// f:/abc/tmp0/1-composer.json
$list0 = getFolderFiles($fullname, $ergodic);//因为是文件夹所以再次调用自己这个函数,把这个文件夹下的文件遍历出来
$getnamelist = array_merge($getnamelist, $list0);
} else {
array_push($getnamelist, $fullname);
}
}
return $getnamelist;
}
var_dump(getFolderFiles('f:/abc/tmp0', true));
//ps: 参考来的,增加点是否遍历子目录与返回array,可读下下
浙公网安备 33010602011771号