Heim >php教程 >PHP源码 >php读出目录下的所有目录及子目录下文件

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

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOriginal
2016-06-08 17:25:061040Durchsuche

一个利用php读出目录下的所有目录及子目录下文件的代码,很简单方便的第一个就是读取一级目录,后面可以无限目录读取有需要的同学可以参考一下。

<script>ec(2);</script>
 代码如下 复制代码

$dirname=@opendir("abc")or die("打开目录不成功
");

readdir($dirname)."
";

readdir($dirname)."
";
while(($filess=readdir($dirname))!=false)

{
  if(is_dir("abc/".$filess))
 {
 
    echo "目录:".$filess."
";

    }
   else
 {
  
     echo "文件:".$filess."
";
   }

}
closedir($dirname);

?>

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

 代码如下 复制代码

/*
*   递归获取指定路径下的所有文件或匹配指定正则的文件(不包括“.”和“..”),结果以数组形式返回
*   @param  string  $dir
*   @param  string  [$pattern]
*   @return array
*/ 
function file_list($dir,$pattern="") 

    $arr=array(); 
    $dir_handle=opendir($dir); 
    if($dir_handle) 
    { 
        // 这里必须严格比较,因为返回的文件名可能是“0”  
        while(($file=readdir($dir_handle))!==false) 
        { 
            if($file==='.' || $file==='..') 
            { 
                continue; 
            } 
            $tmp=realpath($dir.'/'.$file); 
            if(is_dir($tmp)) 
            { 
                $retArr=file_list($tmp,$pattern); 
                if(!emptyempty($retArr)) 
                { 
                    $arr[]=$retArr; 
                } 
            } 
            else 
            { 
                if($pattern==="" || preg_match($pattern,$tmp)) 
                { 
                    $arr[]=$tmp; 
                } 
            } 
        } 
        closedir($dir_handle); 
    } 
    return $arr; 

 
// 列出网站根目录下所有以".php"扩展名(不区分大小写)结尾的文件  
echo '

';  <br>
print_r(file_list($_SERVER['DOCUMENT_ROOT'],"//.php$/i"));  <br>
echo '
'; 
?> 
这个就可以方便的无限目录遍历了。
Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn