当前位置:首页 > PHP教程 > php文件操作 > 列表

php获取目录下所有文件及目录(多种方法)(推荐)

发布:smiling 来源: PHP粉丝网  添加日期:2021-11-22 23:14:53 浏览: 评论:0 

这篇文章主要介绍了php获取目录下所有文件及目录多种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧。

获取某目录下所有子文件和子目录

  1. function getDirContent($path){ 
  2.   if(!is_dir($path)){ 
  3.     return false; 
  4.   } 
  5.   //readdir方法 
  6.   /* $dir = opendir($path); 
  7.   $arr = array(); 
  8.   while($content = readdir($dir)){ 
  9.     if($content != '.' && $content != '..'){ 
  10.       $arr[] = $content; 
  11.     } 
  12.   } 
  13.   closedir($dir); */ 
  14.  
  15.   //scandir方法 
  16.   $arr = array(); 
  17.   $data = scandir($path); 
  18.   foreach ($data as $value){ 
  19.     if($value != '.' && $value != '..'){ 
  20.       $arr[] = $value
  21.     } 
  22.   } 
  23.   return $arr

下面介绍的三种方法,是获取某个目录下所有的目录(包括子目录,子孙目录)和文件,直到最里层

方法一

  1. function searchDir($path,&$files){ 
  2.  
  3.   if(is_dir($path)){ 
  4.  
  5.     $opendir = opendir($path); 
  6.  
  7.     while ($file = readdir($opendir)){ 
  8.       if($file != '.' && $file != '..'){ 
  9.         searchDir($path.'/'.$file$files); 
  10.       } 
  11.     } 
  12.     closedir($opendir); 
  13.   } 
  14.   if(!is_dir($path)){ 
  15.     $files[] = $path
  16.   } 
  17. //得到目录名 
  18. function getDir($dir){ 
  19.   $files = array(); 
  20.   searchDir($dir$files); 
  21.   return $files
  22. $filenames = getDir('lss'); 
  23.  
  24. foreach ($filenames as $value){ 
  25.   echo $value.'<br/>'
  26. }  

方法二:

  1. function getDir($path){ 
  2.  
  3.   if(is_dir($path)){ 
  4.  
  5.     $dir = scandir($path); 
  6.     foreach ($dir as $value){ 
  7.       $sub_path =$path .'/'.$value
  8.       if($value == '.' || $value == '..'){ 
  9.         continue
  10.       }else if(is_dir($sub_path)){ 
  11.         echo '目录名:'.$value .'<br/>'
  12.         getDir($sub_path); 
  13.       }else
  14.         //.$path 可以省略,直接输出文件名 
  15.         echo ' 最底层文件: '.$path':'.$value.' <hr/>'
  16.       } 
  17.     } 
  18.   } 
  19. $path = 'lss'
  20. getDir($path);  

方法三:

  1. function getDir($path){ 
  2.   $arr = array(); 
  3.     $arr[] = $path
  4.   if(is_file($path)){ 
  5.  
  6.   }else
  7.     if(is_dir($path)){ 
  8.       $data = scandir($path); 
  9.       if(!emptyempty($data)){ 
  10.         foreach ($data as $value){ 
  11.           if($value != '.' && $value != '..'){ 
  12.             $sub_path = $path."/".$value
  13.             $temp = getDirContent($sub_path); 
  14.             $arr = array_merge($temp,$arr); 
  15.           }           
  16.         } 
  17.  
  18.       } 
  19.     } 
  20.   } 
  21.  
  22.   return $arr
  23. $path = 'lss'
  24. var_dump(getDir($path));

Tags: php获取目录文件

分享到:

相关文章