public function my_scandir($dir) {
if(!is_dir($dir)) {
return false;
}
$files = array();
$dir = realpath($dir);
if($file == '.' || $file == '..') {
continue;
}
if(is_dir($file)) {
$files[pathinfo($file, PATHINFO_BASENAME)] = $this->my_scandir($file);
} else {
$files[] = pathinfo($file, PATHINFO_BASENAME);
}
}
return $files;
if(!is_dir($dir)) {
return false;
}
$files = array();
$dir = realpath($dir);
$dir = $dir . '/';
$temp_files = glob($dir.'*');
foreach($temp_files as $file) {if($file == '.' || $file == '..') {
continue;
}
if(is_dir($file)) {
$files[pathinfo($file, PATHINFO_BASENAME)] = $this->my_scandir($file);
} else {
$files[] = pathinfo($file, PATHINFO_BASENAME);
}
}
return $files;
}
$temp_files = glob($dir.'*');比较搞的是我当初想为啥不用glob($dir.'*.*') 事后发现这个问题很低级。
如果是个文件夹。。用这个多尴尬。如果要一维数组
if(is_dir($file)) {
$files[pathinfo($file, PATHINFO_BASENAME)] = $this->my_scandir($file);
} else {
$files[] = pathinfo($file, PATHINFO_BASENAME);
}
修改为
if(is_dir($file)) {
$files = array_merge($files,$this->my_scandir($file));
} else {
$files[] = pathinfo($file, PATHINFO_BASENAME);
}