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+SQL 注入攻击的技术实现以及预防办法
Dec 29 PHP
PHP面向对象的进阶学习(抽像类、接口、final、类常量)
May 07 PHP
PHP explode()函数用法、切分字符串
Oct 03 PHP
深入php-fpm的两种进程管理模式详解
Jun 03 PHP
Windows下编译PHP5.4和xdebug全记录
Apr 03 PHP
php和editplus正则表达式去除空白行
Apr 17 PHP
帝国cms常用标签汇总
Jul 06 PHP
PHP实现多图上传(结合uploadify插件)思路分析
Nov 30 PHP
php简单随机字符串生成方法示例
Apr 19 PHP
php实现文件预览功能
May 23 PHP
laravel-admin select框默认选中的方法
Oct 03 PHP
laravel邮件发送的实现代码示例
Jan 31 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
解决中英文字符串长度问题函数
2007/01/16 PHP
php 调用百度sms来发送短信的实现示例
2018/11/02 PHP
document.createElement()用法及注意事项(ff下不兼容)
2013/03/13 Javascript
jquery实现带二级菜单的导航示例
2014/04/28 Javascript
jQuery封装的tab选项卡插件分享
2015/06/16 Javascript
Bootstrap与KnockoutJs相结合实现分页效果实例详解
2016/05/03 Javascript
9个让JavaScript调试更简单的Console命令
2016/11/14 Javascript
AngularJS extend用法详解及实例代码
2016/11/15 Javascript
基于JS实现仿百度百家主页的轮播图效果
2017/03/06 Javascript
微信小程序 页面跳转及数据传递详解
2017/03/14 Javascript
Angular.JS中指令ng-if、ng-show/ng-hide和ng-switch的使用教程
2017/05/07 Javascript
微信小程序 rich-text的使用方法
2017/08/04 Javascript
微信小程序中吸底按钮适配iPhone X方案
2017/11/29 Javascript
vue-cli2 构建速度优化的实现方法
2019/01/08 Javascript
jquery 插件重新绑定的处理方法分析
2019/11/23 jQuery
[59:53]DOTA2-DPC中国联赛 正赛 VG vs Elephant BO3 第二场 3月6日
2021/03/11 DOTA
使用Python的PIL模块来进行图片对比
2016/02/18 Python
Python基于pygame模块播放MP3的方法示例
2017/09/30 Python
Python列表推导式与生成器用法分析
2018/08/02 Python
pycharm执行python时,填写参数的方法
2018/10/29 Python
python字符串和常用数据结构知识总结
2019/05/21 Python
解决Pyinstaller 打包exe文件 取消dos窗口(黑框框)的问题
2019/06/21 Python
python 使用socket传输图片视频等文件的实现方式
2019/08/07 Python
Django如何实现上传图片功能
2019/08/16 Python
Python使用grequests(gevent+requests)并发发送请求过程解析
2019/09/25 Python
scrapy与selenium结合爬取数据(爬取动态网站)的示例代码
2020/09/28 Python
python实现PolynomialFeatures多项式的方法
2021/01/06 Python
分享CSS3中必须要知道的10个顶级命令
2012/04/26 HTML / CSS
使用CSS3实现多列布局与多背景的技巧
2016/02/29 HTML / CSS
自我鉴定范文200字
2013/10/02 职场文书
尽职尽责村干部自我鉴定
2014/01/23 职场文书
亲子读书活动方案
2014/02/22 职场文书
2014年大学生社会实践自我鉴定
2014/09/26 职场文书
亮剑精神观后感
2015/06/05 职场文书
PHP实现rar解压读取扩展包小结
2021/06/03 PHP
如何解决flex文本溢出问题小结
2022/07/15 HTML / CSS