php递归获取目录文件(包含子目录)

2015/08/1122:05:51php递归获取目录文件(包含子目录)已关闭评论 1,017
摘要

php获取文件夹下所有文件,包含子文件。

自定义函数一:

function file_list($path){ 
 if ($handle = opendir($path)){ //打开路径成功 
 while (false !== ($file = readdir($handle))){ //循环读取目录中的文件名并赋值给$file 
 if ($file != "." && $file != ".."){ //排除当前路径和前一路径 
 if (is_dir($path."/".$file)){ 
 // echo $path.": ".$file."<br>";//去掉此行显示的是所有的非目录文件 
 file_list($path."/".$file); 
 } else { 
 echo $path.": ".$file."<br>"; 
 } 
 } 
 } 
 } 
 closedir($handle); //安全考虑,关闭目录
}
// 调用方法:
print_r (file_list('D:\phpstudy\WWW\js'));

自定义函数二:

/**
*function: php获取文件夹下面所有文件
*@param $directory需要获取的文件
*@param bool $recursive 是否递归获取子文件夹
*@returned array
**/

function directoryToArray($directory,$recursive=false){
 $array_items = array();
 if(!is_dir($directory)) return "$directory folder does not exist";
 if($handle = opendir($directory)) {
 while (false !==($file = readdir($handle))) {
 if ($file != "." && $file != "..") {
 if (is_dir($directory."/".$file)) {
 if($recursive) {
 $array_items = array_merge($array_items,directoryToArray($directory."/".$file,$recursive));
 }
 $file = $directory."/".$file;
 $array_items[] = preg_replace("/\/\//si", "/", $file);
 } else{
 $file = $directory."/".$file;
 $array_items[] = preg_replace("/\/\//si", "/", $file);
 }
 }
 }
 closedir($handle);
}
return $array_items;
}

//调用方法:
$files = directoryToArray('D:\phpstudy\WWW\js',true);
//var_dump($files);
print_r($files);

 

  • 我的微信
  • 这是我的微信扫一扫
  • weinxin
  • 我的微信公众号
  • 我的微信公众号扫一扫
  • weinxin