PHP遍历文件夹里面的文件方法合集

热度:2612020-11-23 18:38 收藏 0 点赞 0

一般读取文件夹内的文件方法都是用递归处理的

方法一: 

function getfiles( $path ){
  $list = array();
  foreach( glob( $path . '/*') as $item ){
    if( is_dir( $item ) ){
     $list = array_merge( $list , getfiles( $item ) );
    }
    else{
     $list[] = $item;
    }
  }
  return $list;
}

方法二:

function getfiles2( $path ){
  $list = array();
  foreach( glob( $path . '/*') as $item ){
    if( is_dir( $item ) ){
     $list[] = $item;
    }
  }
  return $list;
}

方法三:获取所有文件,带时间

function getfilelist( $path ){
 clearstatcache();
  $list = array();
 
  foreach( glob( $path . '/*') as $item ){
    if( is_dir( $item ) ){
  $list = array_merge( $list , getfilelist( $item ) );
 
    }
    else{
 
  $list[$item] = ftime(fileatime($item)); //fileatime 访问时间 fileatime 访问时间 filemtime 修改时间
 
 
    }
  }
  return $list;
}

方法四:

function getfilelist2( $path ){
 clearstatcache();
  $list = array();
 
  foreach( glob( $path . '/*') as $item ){
    if( is_dir( $item ) ){
  $list = array_merge( $list , getfilelist2( $item ) );
 
    }
    else{
 
  $list[$item] = ftime(filemtime($item)); //fileatime 访问时间 fileatime 访问时间 filemtime 修改时间
 
 
    }
  }
  return $list;
}

方法五:可以列出指定目录下所有的文件(包括子目录下的)

function getfiles($path){ 
foreach(scandir($path) as $afile)
{
if($afile=='.'||$afile=='..') continue; 
if(is_dir($path.'/'.$afile)) 
{ 
getfiles($path.'/'.$afile); 
} else { 
echo $path.'/'.$afile.'<br />'; 
} 
} 
} //简单的demo,列出当前目录下所有的文件
getfiles(__DIR__);

方法六:

/**

* 遍历当前文件夹展示所有的文件和目录

*/

 

function dirList($dir_path = '') {

    if(is_dir($dir_path)) {

        $dirs = opendir($dir_path);

        if($dirs) {

            while(($file = readdir($dirs)) !== false) {

                if($file !== '.' && $file !== '..') {

                    if(is_dir($file)) {

                        echo $dir_path . '/' . $file . '
';

                        dirList($dir_path . '/' . $file);

                    } else {

                        echo $dir_path . '/' . $file . '
';

                    }

                }

            }

            closedir($dirs);

        }

    } else {

        echo '目录不存在!';

    }

}

 

dirList('/var/www/html/php-demo');

 

function dir_list($dir) {

    if(!is_dir($dir)) return false;

    $dir_list = array();

    $opendir = opendir($dir);

    if($opendir) {

        while(($file = readdir($opendir)) !== false) {

            if($file !== '.' && $file !== '..') {

                $tem = $dir . '/' . $file;

                if(is_dir($tem)) {

                    $dir_list[$tem . '/'] = $file . '/';

                    dir_list($tem);

                } else {

                    $dir_list[] = $file;

                }

            }

        }

        closedir($opendir);

        return $dir_list;

    }

}

 

$dir = dir_list('/var/www/html/php-demo');

var_dump($dir);

方法七:

  function myscandir($path){
    $mydir=dir($path);
    while($file=$mydir->read()){
      $p=$path.'/'.$file;
      if(($file!=".") AND ($file!="..")){
      echo $p.'<br>';
      }
      if((is_dir($p)) AND ($file!=".") AND ($file!="..")){
        myscandir($p);
      }
    }  
  }
  myscandir(dirname(dirname(__FILE__)));


暂无评论
登录后才可以评论~立即登录

如何获取资源?

您可以关注底部公众号,回复文章提示的 “ 关键词 ” 获取对应资源。

每日分享

每日分享收集的网络资源,其中包含开源项目、小工具、常用软件,以及音频视频、电子书籍等。

分享两个远程工具-ToDesk和向日葵

分享两个远程工具-ToDesk和向日葵...

在工作生活中经常用到远程,QQ远程很卡,第三方远程工具就比较方便了。

爱奇艺万能播放器2018年完整版

爱奇艺万能播放器2018年完整版

2018年的爱奇艺万能播放器,功能齐全,没有广告!

分享500套个人求职简历模板

分享500套个人求职简历模板

500套免费求职简历下载!

一款最近很火的自动跳过广告APP,无root直装版

一款最近很火的自动跳过广告APP,...

自动跳过广告,无需root

WPS免费去广告电脑软件

WPS免费去广告电脑软件

wps广告实在太多了,下载一个去广告版本

强制突破进入好友QQ空间

强制突破进入好友QQ空间

一款突破好友进入QQ空间的软件