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 的几个配置文件函数
Dec 21 PHP
APACHE的AcceptPathInfo指令使用介绍
Jan 18 PHP
php中函数前加&amp;符号的作用分解
Jul 08 PHP
PHP rsa加密解密使用方法
Apr 27 PHP
php经典算法集锦
Nov 14 PHP
Yii全局函数用法示例
Jan 22 PHP
PHP unlink与rmdir删除目录及目录下所有文件实例代码
Feb 07 PHP
Yii2框架自定义验证规则操作示例
Feb 08 PHP
对laravel的csrf 防御机制详解,及form中csrf_token()的存在介绍
Oct 24 PHP
php变量与字符串的增删改查操作示例
May 07 PHP
PHP中的异常处理机制深入讲解
Nov 10 PHP
PHP 时间处理类Carbon
May 20 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的ob_start();控制您的浏览器cache!
2006/11/25 PHP
ThinkPHP之import方法实例详解
2014/06/20 PHP
PHP中绘制图像的一些函数总结
2014/11/19 PHP
PHP读取mssql json数据中文乱码的解决办法
2016/04/11 PHP
关于UTF-8的客户端用AJAX方式获取GB2312的服务器端乱码问题的解决办法
2010/11/30 Javascript
JavaScript常用的弹出广告及背投广告实现方法
2015/02/06 Javascript
AngularJS中监视Scope变量以及外部调用Scope方法
2016/01/23 Javascript
JS面向对象编程详解
2016/03/06 Javascript
JS数组操作(数组增加、删除、翻转、转字符串、取索引、截取(切片)slice、剪接splice、数组合并)
2016/05/20 Javascript
AngularJS操作键值对象类似java的hashmap(填坑小结)
2016/11/12 Javascript
AngularJS自定义控件实例详解
2016/12/13 Javascript
Angularjs 手写日历的实现代码(不用插件)
2017/10/18 Javascript
javascript将json格式数组下载为excel表格的方法
2017/12/22 Javascript
微信小程序实现动态获取元素宽高的方法分析
2018/12/10 Javascript
简述Vue中容易被忽视的知识点
2019/12/09 Javascript
[02:25]DOTA2英雄基础教程 生死判决瘟疫法师
2013/12/06 DOTA
[01:17]炒鸡美酒第四天TA暴走
2018/06/05 DOTA
[54:15]DOTA2-DPC中国联赛 正赛 DLG vs Dragon BO3 第二场2月1日
2021/03/11 DOTA
python文件操作整理汇总
2014/10/21 Python
python中解析json格式文件的方法示例
2017/05/03 Python
Python利用splinter实现浏览器自动化操作方法
2018/05/11 Python
Sanic框架安装与简单入门示例
2018/07/16 Python
Python函数参数匹配模型通用规则keyword-only参数详解
2019/06/10 Python
关于python导入模块import与常见的模块详解
2019/08/28 Python
python pyqtgraph 保存图片到本地的实例
2020/03/14 Python
python requests包的request()函数中的参数-params和data的区别介绍
2020/05/05 Python
python speech模块的使用方法
2020/09/09 Python
利用CSS3实现文字折纸效果实例代码
2018/07/10 HTML / CSS
药剂学专业应届生自荐信
2013/09/29 职场文书
汉语言文学毕业生求职信
2013/10/01 职场文书
交通事故赔偿协议书
2014/04/15 职场文书
幼儿园小班评语大全
2014/04/17 职场文书
2015年管理人员工作总结
2015/05/13 职场文书
宾馆卫生管理制度
2015/08/06 职场文书
感恩父母主题班会
2015/08/12 职场文书
MySQL 如何限制一张表的记录数
2021/09/14 MySQL