/**
* 读取目标文件夹下所有文件,会按照目录层级结构组成数组
* @param $dir
* @param bool $is_deep 是否进行递归
* @param bool $name_with_dir 命名是否增加目录名
* @param array $father_dir
* @return array|bool
*/
public function read_all($dir,$is_deep = true,$name_with_dir = false, & $father_dir = array())
{
if (!is_dir($dir)) return false;
$handle = opendir($dir);
if ($handle) {
while (($fl = readdir($handle)) !== false) {
$temp = $dir . '/' . $fl;
//如果不加 $fl!='.' && $fl != '..' 则会造成把$dir的父级目录也读取出来
if (is_dir($temp) && $fl != '.' && $fl != '..' && $is_deep) {
if (!isset($father_dir[$fl])) $father_dir[$fl] = array();
$this->read_all($temp, true,false,$father_dir[$fl]);
} else {
// var_dump($father_dir);
if ($fl != '.' && $fl != '..') {
if($name_with_dir) {
$father_dir[] = $temp;
}else{
$father_dir[] = $fl;
}
}
}
}
}
closedir($handle);
return $father_dir;
}