首页 >后端开发 >php教程 >php遍历文件夹及其下所有文件的代码

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

WBOY
WBOY原创
2016-07-25 09:00:27770浏览
php实现遍历当前文件夹以及其下所有文件与文件夹的代码,主要是用到了递归,有需要的朋友,可以参考学习下。

代码如下:

<?php
 /**
  * 遍历文件夹下所有文件
  * site bbs.it-home.org
 */
 $path = './filepath';  
 function getfiles($path)  
 {  
     if(!is_dir($path)) return;  
    $handle  = opendir($path);  
    while( false !== ($file = readdir($handle)))  
    {  
        if($file != '.'  &&  $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->read())  
    {  
        if($file!='.' && $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!='.' && $single!='..')  
        {  
            $path2 = $path.'/'.$single;  
            if(is_dir($path2))  
            {  
                echo  $single."  \r\n";  
                 get_dir_scandir($path2);  
            }else 
            {  
                echo $single."  \r\n";  
            }  
        }  
    }  
}  
get_dir_scandir($path);  
 
  echo '  <HR>';  
 
function get_dir_glob(){  
    $tree = array();  
    foreach(glob('./curl/*') as $single){  
        echo $single."  \r\n";  
    }  
}  
get_dir_glob();  
 
   echo '  <HR>';  
function myscandir($path)  
{  
    if(!is_dir($path))  return;  
    foreach(scandir($path) as $file)  
    {  
        if($file!='.'  && $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);
?>


声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn