本文分享一个遍历目录下所有文件的php代码,有兴趣研究php递归遍历的朋友,可以作个参考,挺不错,希望对大家有帮助。 PHP遍历目录下所有文件。例子: 复制代码 代码示例:<?php /* * 递归…,

本文分享一个遍历目录下所有文件的php代码,有兴趣研究php递归遍历的朋友,可以作个参考,挺不错,希望对大家有帮助。

PHP遍历目录下所有文件。
例子:
 

<?php  
/* 
* 递归获取指定路径下的所有文件或匹配指定正则的文件(不包括.和..),结果以数组形式返回 
* @param  string  $dir 
* @param  string  [$pattern] 
* @return array 
* @edit: www.90codes.com
*/  
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(!empty($retArr))  
                {  
                    $arr[]=$retArr;  
                }  
            }  
            else  
            {  
                if($pattern==="" || preg_match($pattern,$tmp))  
                {  
                    $arr[]=$tmp;  
                }  
            }  
        }  
        closedir($dir_handle);  
    }  
    return $arr;  
}  
  
// 列出网站根目录下所有以".php"扩展名(不区分大小写)结尾的文件  
echo '<pre>';  
print_r(file_list($_SERVER['DOCUMENT_ROOT'],"//.php$/i"));  
echo '';  
?>