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 相关文章推荐
织梦模板标记简介
Mar 11 PHP
MySQL数据源表结构图示
Jun 05 PHP
php urlencode()与urldecode()函数字符编码原理详解
Dec 06 PHP
探讨:如何通过stats命令分析Memcached的内部状态
Jun 14 PHP
用 Composer构建自己的 PHP 框架之设计 MVC
Oct 30 PHP
php中实现xml与mysql数据相互转换的方法
Dec 25 PHP
PHP函数超时处理方法
Feb 14 PHP
PHP基于IMAP收取邮件的方法示例
Aug 07 PHP
详解php curl带有csrf-token验证模拟提交方法
Apr 18 PHP
PDO::prepare讲解
Jan 29 PHP
wordpress自定义标签云与随机获取标签的方法详解
Mar 22 PHP
关于Yii中模型场景的一些简单介绍
Sep 22 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 创建文件(文件夹)以及目录操作代码
2010/03/04 PHP
使用Smarty 获取当前日期时间和格式化日期时间的方法详解
2013/06/18 PHP
Javascript模块化编程(三)require.js的用法及功能介绍
2013/01/17 Javascript
iframe的父子窗口之间的对象相互调用基本用法
2013/09/03 Javascript
通过javascript把图片转化为字符画
2013/10/24 Javascript
如何在 Vue.js 中使用第三方js库
2017/04/25 Javascript
简单实现js点击展开二级菜单功能
2017/05/16 Javascript
Bootstrap 表单验证formValidation 实现表单动态验证功能
2017/05/17 Javascript
微信小程序 本地图片按照屏幕尺寸处理
2017/08/04 Javascript
vue实现的组件兄弟间通信功能示例
2018/12/04 Javascript
VUE+node(express)实现前后端分离
2019/10/13 Javascript
实例讲解React 组件生命周期
2020/07/08 Javascript
全面解析js中的原型,原型对象,原型链
2021/01/25 Javascript
[48:45]Ti4 循环赛第二日 NEWBEE vs EG
2014/07/11 DOTA
Python浅拷贝与深拷贝用法实例
2015/05/09 Python
Python批量转换文件编码格式
2015/05/17 Python
Python的Tornado框架实现图片上传及图片大小修改功能
2016/06/30 Python
python 中split 和 strip的实例详解
2017/07/12 Python
python清理子进程机制剖析
2017/11/23 Python
numpy使用技巧之数组过滤实例代码
2018/02/03 Python
对python添加模块路径的三种方法总结
2018/10/16 Python
python实现低通滤波器代码
2020/02/26 Python
python变量的作用域是什么
2020/05/26 Python
CSS3 选择器 伪类选择器介绍
2012/01/21 HTML / CSS
LightInTheBox西班牙站点:全球商品在线采购
2016/09/22 全球购物
性能服装:HYLETE
2018/08/14 全球购物
吉力贝官方网站:Jelly Belly
2019/03/11 全球购物
优秀中专生推荐信
2013/11/17 职场文书
政治学专业毕业生求职信
2014/08/11 职场文书
我的中国梦演讲稿高中篇
2014/08/19 职场文书
党员个人公开承诺书
2014/08/29 职场文书
乒乓球比赛通知
2015/04/27 职场文书
恰同学少年观后感
2015/06/08 职场文书
简单了解 MySQL 中相关的锁
2021/05/25 MySQL
PHP获取学生成绩的方法
2021/11/17 PHP
Python装饰器的练习题
2021/11/23 Python