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


Posted in PHP onMay 14, 2019

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

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 相关文章推荐
PHP面向对象编程快速入门
Oct 09 PHP
php5新改动之短标记启用方法
Sep 11 PHP
PHP文件上传原理简单分析
May 29 PHP
防止本地用户用fsockopen DDOS攻击对策
Nov 02 PHP
php错误级别的设置方法
Jun 17 PHP
PHP判断远程图片或文件是否存在的实现代码
Feb 20 PHP
基于CakePHP实现的简单博客系统实例
Jun 28 PHP
php验证码生成器
May 24 PHP
Laravel中log无法写入问题的解决
Jun 17 PHP
thinkPHP5实现数据库添加内容的方法
Oct 25 PHP
laravel-admin的图片删除实例
Sep 30 PHP
解决php用mysql方式连接数据库出现Deprecated报错问题
Dec 25 PHP
yii2 开发api接口时优雅的处理全局异常的方法
May 14 #PHP
yii2的restful api路由实例详解
May 14 #PHP
php的扩展写法总结
May 14 #PHP
PHP利用pdo_odbc实现连接数据库示例【基于ThinkPHP5.1搭建的项目】
May 13 #PHP
thinkPHP框架通过Redis实现增删改查操作的方法详解
May 13 #PHP
ThinkPHP3.2框架自带分页功能实现方法示例
May 13 #PHP
PHP使用Redis实现Session共享的实现示例
May 12 #PHP
You might like
PHP 存取 MySQL 数据库的一个例子
2006/10/09 PHP
PHP 类型转换函数intval
2009/06/20 PHP
php中全局变量global的使用演示代码
2011/05/18 PHP
ThinkPHP、ZF2、Yaf、Laravel框架路由大比拼
2015/03/25 PHP
分享50个提高PHP执行效率的技巧
2015/12/26 PHP
PHP与Ajax相结合实现登录验证小Demo
2016/03/16 PHP
PHP实现的微信公众号扫码模拟登录功能示例
2019/05/30 PHP
JavaScript prototype属性使用说明
2010/05/13 Javascript
js操作二级联动实现代码
2010/07/27 Javascript
php对mongodb的扩展(初识如故)
2012/11/11 Javascript
jquery实现盒子下拉效果示例代码
2013/09/12 Javascript
单击某一段文字改写文本颜色
2014/06/06 Javascript
JS获取随机数和时间转换的简单实例
2016/07/10 Javascript
AngularJS之依赖注入模拟实现
2016/08/19 Javascript
工厂模式在JS中的实践
2017/01/18 Javascript
js求数组中全部数字可拼接出的最大整数示例代码
2017/08/25 Javascript
微信小程序使用Vant Weapp组件库的方法步骤
2019/08/01 Javascript
JavaScript 监听组合按键思路及代码实现
2020/07/28 Javascript
Vue记住滚动条和实现下拉加载的完美方法
2020/07/31 Javascript
vue 获取到数据但却渲染不到页面上的解决方法
2020/11/19 Vue.js
[02:51]DOTA2英雄基础教程 艾欧
2014/01/13 DOTA
[01:54]TI珍贵瞬间系列(五):压力
2020/08/29 DOTA
Python多线程编程(二):启动线程的两种方法
2015/04/05 Python
Python文本相似性计算之编辑距离详解
2016/11/28 Python
python实现12306火车票查询器
2017/04/20 Python
python 8种必备的gui库
2020/08/27 Python
Python 使用Opencv实现目标检测与识别的示例代码
2020/09/08 Python
外企测试工程师面试题
2015/02/01 面试题
计算机网络专业个人的自我评价
2013/10/17 职场文书
党校学习思想汇报
2014/01/06 职场文书
幼儿园新学期寄语
2014/01/18 职场文书
读书活动实施方案
2014/03/10 职场文书
2014年安置帮教工作总结
2014/12/11 职场文书
python实现图片批量压缩
2021/04/24 Python
Python爬虫进阶之Beautiful Soup库详解
2021/04/29 Python
javascript Number 与 Math对象的介绍
2021/11/17 Javascript