php获取目录下所有文件及目录的方法

  • 更新时间:2020-07-24 13:53:18
  • 编辑:敖觅波
为网友们分享了相关的编程文章,网友巴斯斯根据主题投稿了本篇教程内容,涉及到php、获取目录、php获取目录下所有文件及目录(多种方法)(推荐)相关内容,已被181网友关注,内容中涉及的知识点可以在下方直接下载获取。

参考资料

正文内容

php获取目录下所有文件及目录(多种方法)(推荐)

获取某目录下所有子文件和子目录

function getDirContent($path){
  if(!is_dir($path)){
    return false;
  }
  //readdir方法
  /* $dir = opendir($path);
  $arr = array();
  while($content = readdir($dir)){
    if($content != '.' && $content != '..'){
      $arr[] = $content;
    }
  }
  closedir($dir); */

  //scandir方法
  $arr = array();
  $data = scandir($path);
  foreach ($data as $value){
    if($value != '.' && $value != '..'){
      $arr[] = $value;
    }
  }
  return $arr;
}

下面介绍的三种方法,是获取某个目录下所有的目录(包括子目录,子孙目录)和文件,直到最里层

方法一

function searchDir($path,&$files){

  if(is_dir($path)){

    $opendir = opendir($path);

    while ($file = readdir($opendir)){
      if($file != '.' && $file != '..'){
        searchDir($path.'/'.$file, $files);
      }
    }
    closedir($opendir);
  }
  if(!is_dir($path)){
    $files[] = $path;
  }
}
//得到目录名
function getDir($dir){
  $files = array();
  searchDir($dir, $files);
  return $files;
}
$filenames = getDir('lss');

foreach ($filenames as $value){
  echo $value.'<br/>';
} 

方法二:

function getDir($path){

  if(is_dir($path)){

    $dir = scandir($path);
    foreach ($dir as $value){
      $sub_path =$path .'/'.$value;
      if($value == '.' || $value == '..'){
        continue;
      }else if(is_dir($sub_path)){
        echo '目录名:'.$value .'<br/>';
        getDir($sub_path);
      }else{
        //.$path 可以省略,直接输出文件名
        echo ' 最底层文件: '.$path. ':'.$value.' <hr/>';
      }
    }
  }
}
$path = 'lss';
getDir($path); 

方法三:

function getDir($path){
  $arr = array();
    $arr[] = $path;
  if(is_file($path)){

  }else{
    if(is_dir($path)){
      $data = scandir($path);
      if(!empty($data)){
        foreach ($data as $value){
          if($value != '.' && $value != '..'){
            $sub_path = $path."/".$value;
            $temp = getDirContent($sub_path);
            $arr = array_merge($temp,$arr);
          }          
        }

      }
    }
  }

  return $arr;
}
$path = 'lss';
var_dump(getDir($path));

以上所述是小编给大家介绍的php获取目录下所有文件及目录多种方法详解整合,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对码农之家网站的支持!

相关教程

  • PHP unlink与rmdir删除目录及目录下所有文件方法

    这篇文章主要介绍了PHP unlink与rmdir删除目录及目录下所有文件的实例代码,需要的朋友可以参考下

    发布时间:2019-06-18

  • php实现遍历指定目录并存储目录内所有文件属性信息

    本篇文章主要介绍了PHP遍历指定目录,并存储目录内所有文件属性信息,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。

    发布时间:2020-05-18

  • php opendir()列出目录下文件的方法代码

    这篇文章主要介绍了php opendir()列出目录下所有文件的实例代码的相关资料,需要的朋友可以参考下

    发布时间:2019-06-19

  • PHP核心技术与最佳实践

    PHP核心技术与最佳实践

    《PHP核心技术与最佳实践》系统归纳和深刻解读PHP开发中的编程思想、底层原理、核心技术、开发技巧、编码规范和**实践,为PHP程序员进阶修炼提供全面而高效的指导!

    大小:197.3 MBPHP技术与实践电子书

  • 跟兄弟连学PHP

    跟兄弟连学PHP

    本书是畅销书《细说PHP(第2版)》升级版,以实用为设计目标,包含PHP开发最主流的各项技术,对每一个知识点都进行了深入详细的讲解,并附有大量的实例代码,图文并茂,系统地介绍了PHP的相关技术及其在实际Web开发中的应用

    大小:302.8 MBPHP自学电子书

  • PHP从入门到精通

    PHP从入门到精通

    《php从入门到精通(第4版)》 从初学者角度出发,通过通俗易懂的语言、丰富多彩的实例,详细介绍了使用PHP进行网络开发应该掌握的各方面技术。 《php从入门到精通(第4版)》共分4篇25章

    大小:41.6 MBPHP电子书

  • 写给PHP开发者的Node.js学习指南

    写给PHP开发者的Node.js学习指南

    Node.js是一套用来编写高性能网络服务器的JavaScript工具包。结合PHP和Node.js,我们可以概览整个Web服务器从起源到现在的历史过程以及其中的改变。 《 写给PHP开发者的Node.js学习指南 》的目的是

    大小:3.46 MBNode.js电子书

  • PHP开发实例大全:基础卷

    PHP开发实例大全:基础卷

    《PHP开发实例大全》625经典实例及源码分析 15个应用方向 两卷共1225例 40个方向 分门别类实例一应俱全 供学习、速查、实践练习的超全参考手册 php开发实战1200例 php范例大全之全新升级。

    大小:232 MBPHP开发电子书

用户留言