网站地图    收藏   

主页 > php专栏 > php文件操作 >

php读出目录下的所有目录及子目录下文件 - php文

来源:自学PHP网    时间:2014-11-28 00:07 作者: 阅读:

[导读] 一个利用php读出目录下的所有目录及子目录下文件的代码,很简单方便的第一个就是读取一级目录,后面可以无限目录读取,实例代码如下:?php$dirname=@opendir(abc)ordie(打开目录不成功br);readd...

php读出目录下的所有目录及子目录下文件

一个利用php读出目录下的所有目录及子目录下文件的代码,很简单方便的第一个就是读取一级目录,后面可以无限目录读取,实例代码如下:

  1. <?php 
  2. $dirname=@opendir("abc")or die("打开目录不成功<br>"); 
  3.  
  4. readdir($dirname)."<br>"
  5.  
  6. readdir($dirname)."<br>"
  7. while(($filess=readdir($dirname))!=false) 
  8.  
  9.   if(is_dir("abc/".$filess)) 
  10.  { 
  11.    
  12.     echo "目录:".$filess."<br>"
  13.  
  14.     } 
  15.    else 
  16.  { 
  17.     
  18.      echo "文件:".$filess."<br>"
  19.    } 
  20.  
  21. closedir($dirname); 
  22.  
  23. ?> 

只能读出html文件名,读不出abc目录下的目录名,下面我们再看一实例,实例代码如下:

  1. <?php   
  2. /*  
  3. *   递归获取指定路径下的所有文件或匹配指定正则的文件(不包括“.”和“..”),结果以数组形式返回  
  4. *   @param  string  $dir  
  5. *   @param  string  [$pattern]  
  6. *   @return array  
  7. */   
  8. function file_list($dir,$pattern="")   
  9. {   
  10.     $arr=array();   
  11.     $dir_handle=opendir($dir);   
  12.     if($dir_handle)   
  13.     {   
  14.         // 这里必须严格比较,因为返回的文件名可能是“0”    
  15.         while(($file=readdir($dir_handle))!==false)   
  16.         {   
  17.             if($file==='.' || $file==='..')   
  18.             {   
  19.                 continue;   
  20.             }   
  21.             $tmp=realpath($dir.'/'.$file);   
  22.             if(is_dir($tmp))   
  23.             {   
  24.                 $retArr=file_list($tmp,$pattern);   
  25.                 if(!emptyempty($retArr))   
  26.                 {   
  27.                     $arr[]=$retArr;   
  28.                 }   
  29.             }   
  30.             else   
  31.             {   
  32.                 if($pattern==="" || preg_match($pattern,$tmp))   
  33.                 {   
  34.                     $arr[]=$tmp;   
  35.                 }   
  36.             }   
  37.         }   
  38.         closedir($dir_handle);   
  39.     }   
  40.     return $arr;   
  41. }   
  42.    
  43. // 列出网站根目录下所有以".php"扩展名(不区分大小写)结尾的文件    
  44. echo '<pre>';   
  45. print_r(file_list($_SERVER['DOCUMENT_ROOT'],"//.php$/i"));   
  46. echo '</pre>';   
  47. ?> 

自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习

京ICP备14009008号-1@版权所有www.zixuephp.com

网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com

添加评论