已经有代码了
$res = recurDir($path);
var_dump($res);
function recurDir($pathName){
$result = array();
$temp = array();
if(!is_dir($pathName) || !is_readable($pathName)) die("不是目录或无读权限!");
$allFiles = scandir($pathName);
foreach($allFiles as $fileName){
if(in_array($fileName,array('.','..'))) continue;
$fullName = $pathName . '/'.$fileName;
if(is_dir($fullName)){
$result[$fileName] = recurDir($fullName);
}
else{
if(is_file($fullName)){
$files[] = $fileName;
}
}
}
foreach($files as $f){
$result[] = $f;
}
return $result;
}
不过返回的是类似
array
'A' =>
array
'AA' =>
array
0 => string '1111.txt' (length=8)
1 => string '1222.txt' (length=8)键名是目录名
我想让他只返回一维数组,只包含文件名,怎么改
$res = recurDir($path);
var_dump($res);
function recurDir($pathName){
$result = array();
$temp = array();
if(!is_dir($pathName) || !is_readable($pathName)) die("不是目录或无读权限!");
$allFiles = scandir($pathName);
foreach($allFiles as $fileName){
if(in_array($fileName,array('.','..'))) continue;
$fullName = $pathName . '/'.$fileName;
if(is_dir($fullName)){
$result[$fileName] = recurDir($fullName);
}
else{
if(is_file($fullName)){
$files[] = $fileName;
}
}
}
foreach($files as $f){
$result[] = $f;
}
return $result;
}
不过返回的是类似
array
'A' =>
array
'AA' =>
array
0 => string '1111.txt' (length=8)
1 => string '1222.txt' (length=8)键名是目录名
我想让他只返回一维数组,只包含文件名,怎么改
function recurDir($pathName) {
$ar = glob($pathName.'/*');
for($i=0; $i<count($ar); $i++) {
if(is_dir($ar[$i])) {
$ar = array_merge($ar, recurDir($ar[$i]));
}
}
return $ar;
}
如果你一定不要路径,那么
$res = recurDir($path);
后,再
$res = array_map('basename', $res);
去掉路径,也是很简单的