PHP遍历目录获取文件名 无限深度的目录【转】
// $path : path to browse // $maxdepth : how deep to browse (-1=unlimited) // $mode : "FULL"|"DIRS"|"FILES" // $d : must not be defined function searchdir ( $path , $maxdepth = -1 , $mode = "FULL" , $d = 0 ) { if ( substr ( $path , strlen ( $path ) - 1 ) != '/' ) { $path .= '/' ; } $dirlist = array () ; if ( $mode != "FILES" ) { $dirlist[] = $path ; } if ( $handle = opendir ( $path ) ) { while ( false !== ( $file = readdir ( $handle ) ) ) { if ( $file != '.' && $file != '..' ) { $file = $path . $file ; if ( ! is_dir ( $file ) ) { if ( $mode != "DIRS" ) { $dirlist[] = $file ; } } elseif ( $d >=0 && ($d < $maxdepth || $maxdepth < 0) ) { $result = searchdir ( $file . '/' , $maxdepth , $mode , $d + 1 ) ; $dirlist = array_merge ( $dirlist , $result ) ; } } } closedir ( $handle ) ; } if ( $d == 0 ) { natcasesort ( $dirlist ) ; } return ( $dirlist ) ; }
DirectoryIterator和RecursiveDirectoryIterator php5中的目录迭代类
DirectoryIterator获取指定目录的文件或者目录.
RecursiveDirectoryIterator 获取目录下所有的文件,包括子目录
--------------------------------------------------------------------------------------------------
$it = new RecursiveDirectoryIterator("./protected"); foreach(new RecursiveIteratorIterator($it) as $file) {echo $file . "<br>";}
------------------------------------------------------------------------------------------------------------
$path = "./protected/controllers/"; $objects = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($path));
foreach($objects as $object) { $arrFile[] = $object; }
print_r($arrFile);
--------------------------------------------------------------------------------------------------------------
posted on 2013-02-26 09:43 ellisonDon 阅读(2227) 评论(0) 编辑 收藏 举报