php遍历文件夹及其下所有文件的代码

发布时间:2019-07-15编辑:脚本学堂
php实现遍历当前文件夹以及其下所有文件与文件夹的代码,主要是用到了递归,有需要的朋友,可以参考学习下。

代码如下:

<?php
 /**
  * 遍历文件夹下所有文件
  * site www.jb200.com
 */
 $path = './filepath';  
 function getfiles($path)  
 {  
     if(!is_dir($path)) return;  
    $handle  = opendir($path);  
    while( false !== ($file = readdir($handle)))  
    {  
        if($file != '.'  &amp;&amp;  $file!='..')  
        {  
            $path2= $path.'/'.$file;  
            if(is_dir($path2))  
            {  
                echo '  ';  
                echo $file;  
               getfiles($path2);  
            }else 
            {  
               echo ' ';  
                echo $file;  
            }  
        }  
    }  
}  
 
print_r( getfiles($path));  

echo ' <HR>';  
 
function getdir($path)  
{  
    if(!is_dir($path)) return;  
    $handle = dir($path);  
    while($file=$handle-&gt;read())  
    {  
        if($file!='.' &amp;&amp; $file!='..')  
        {  
            $path2 = $path.'/'.$file;  
            if(is_dir($path2))  
            {  
                    echo $file."t";  
                     getdir($path2);  
            }else 
            {  
                echo $file.'';  
            }  
        }  
    }  
}  
 getdir($path);  
 
 echo '  <HR>';  
 
 function get_dir_scandir($path){  
 
    $tree = array();  
    foreach(scandir($path) as $single){  
        if($single!='.' &amp;&amp; $single!='..')  
        {  
            $path2 = $path.'/'.$single;  
            if(is_dir($path2))  
            {  
                echo  $single."  rn";  
                 get_dir_scandir($path2);  
            }else 
            {  
                echo $single."  rn";  
            }  
        }  
    }  
}  
get_dir_scandir($path);  
 
  echo '  <HR>';  
 
function get_dir_glob(){  
    $tree = array();  
    foreach(glob('./curl/*') as $single){  
        echo $single."  rn";  
    }  
}  
get_dir_glob();  
 
   echo '  <HR>';  
function myscandir($path)  
{  
    if(!is_dir($path))  return;  
    foreach(scandir($path) as $file)  
    {  
        if($file!='.'  &amp;&amp; $file!='..')  
        {  
            $path2= $path.'/'.$file;  
            if(is_dir($path2))  
            {  
                echo $file;  
                myscandir($path2);  
            }else 
            {  
                echo $file.'  ';  
            }  
        }  
    }  
}  
 
myscandir($path);  
 
   echo '  <HR>';  
 
function myglob($path)  
{  
    $path_pattern = $path.'/*';  
    foreach(glob($path_pattern) as $file)  
    {  
            if(is_dir($file))  
            {  
                echo $file;  
                myscandir($file);  
            }else 
            {  
                echo $file.'  
';  
            }  
    }  
}  
 
myglob($path);
?>