看到你,梁松远的博客

位置 » 主页 » 代码分享 » php递归读取文件夹的文件列表

php递归读取文件夹的文件列表

 /**

 * 递归读取文件夹的文件列表
 * 
 * 读取的目录路径可以是相对路径, 也可以是绝对路径, $file_type 为指定读取的文件后缀, 不设置则读取文件夹内所有的文件
 * 
 * @param  string
 * @param  string
 * @return array
 */
function fetch_file_lists($dir, $file_type = null){
if ($file_type){
if (substr($file_type, 0, 1) == '.'){
$file_type = substr($file_type, 1);
}
}
$base_dir = realpath($dir);
$dir_handle = opendir($base_dir);
$files_list = array();
while (($file = readdir($dir_handle)) !== false){
if (substr($file, 0, 1) != '.' AND !is_dir($base_dir . '/' . $file)){
if (($file_type AND H::get_file_ext($file, false) == $file_type) OR !$file_type){
$files_list[] = $base_dir . '/' . $file;
}
}else if (substr($file, 0, 1) != '.' AND is_dir($base_dir . '/' . $file)){
if ($sub_dir_lists = fetch_file_lists($base_dir . '/' . $file, $file_type)){
$files_list = array_merge($files_list, $sub_dir_lists);
}
}
return $files_list;
}