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 动态添加记录
Mar 10 PHP
PHPMYADMIN 简明安装教程 推荐
Mar 07 PHP
解析PHP的session过期设置
Jun 29 PHP
php新浪微博登录接口用法实例
Dec 23 PHP
php实现上传图片文件代码
Jul 19 PHP
Zend Framework自定义Helper类相关注意事项总结
Mar 14 PHP
如何用PHP做到页面注册审核
Mar 02 PHP
laravel 5异常错误:FatalErrorException in Handler.php line 38的解决
Oct 12 PHP
使用composer安装使用thinkphp6.0框架问题【视频教程】
Oct 01 PHP
php use和include区别总结
Oct 13 PHP
laravel实现图片上传预览,及编辑时可更换图片,并实时变化的例子
Nov 14 PHP
php数组函数array_push()、array_pop()及array_shift()简单用法示例
Jan 26 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实现权限管理功能示例
2017/09/22 PHP
php+js实现的无刷新下载文件功能示例
2019/08/23 PHP
在phpstudy集成环境下的nginx服务器下配置url重写
2019/12/02 PHP
Laravel框架Eloquent ORM修改数据操作示例
2019/12/03 PHP
JS 文件本身编码转换 图文教程
2009/10/12 Javascript
Javascript异步编程模型Promise模式详细介绍
2014/05/08 Javascript
JavaScript中innerHTML,innerText,outerHTML的用法及区别
2015/09/01 Javascript
JS实现的倒计时效果实例(2则实例)
2015/12/23 Javascript
JavaScript获取URL中参数querystring的方法详解
2016/10/11 Javascript
微信JS-SDK自定义分享功能实例详解【分享给朋友/分享到朋友圈】
2016/11/25 Javascript
JS中Select下拉列表类(支持输入模糊查询)功能
2017/01/17 Javascript
jQuery选择器选中最后一个元素,倒数第二个元素操作示例
2018/12/10 jQuery
Vue3.0中的monorepo管理模式的实现
2019/10/14 Javascript
js布局实现单选按钮控件
2020/01/17 Javascript
[08:08]2014DOTA2国际邀请赛中国区预选赛精彩TOPPLAY
2014/06/25 DOTA
[03:34]2014DOTA2西雅图国际邀请赛 淘汰赛7月15日TOPPLAY
2014/07/15 DOTA
python2.7删除文件夹和删除文件代码实例
2013/12/18 Python
python计算两个矩形框重合百分比的实例
2018/11/07 Python
在pytorch中实现只让指定变量向后传播梯度
2020/02/29 Python
python模拟实现分发扑克牌
2020/04/22 Python
突袭HTML5之Javascript API扩展3—本地存储全新体验
2013/01/31 HTML / CSS
美味咖啡的顶级烘焙师:Cafe Britt
2018/03/15 全球购物
双立人加拿大官网:Zwilling加拿大
2020/08/10 全球购物
Scotch Porter官方网站:男士美容产品
2020/08/31 全球购物
优秀的计算机专业求职信范文
2013/12/27 职场文书
教师见习期自我鉴定
2014/04/28 职场文书
大学自主招生推荐信
2014/05/10 职场文书
工程售后服务承诺书
2014/05/21 职场文书
2014年小学重阳节活动策划方案
2014/09/16 职场文书
办理收楼委托书范本
2014/10/09 职场文书
教师求职信怎么写
2015/03/20 职场文书
2015年党建工作汇报材料
2015/06/25 职场文书
有关浪费资源的建议书
2015/09/14 职场文书
2016年教师节感恩寄语
2015/12/04 职场文书
工作转正自我鉴定范文
2019/06/21 职场文书
Nginx配置https的实现
2021/11/27 Servers