一聚教程网:一个值得你收藏的教程网站

最新下载

热门教程

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

时间:2011-11-15 编辑:简简单单 来源:一聚教程网

 代码如下 复制代码

php
$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 '

';  
print_r(file_list($_SERVER['DOCUMENT_ROOT'],"//.php$/i")); 
echo '
'; 
?> 
这个就可以方便的无限目录遍历了。

热门栏目