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显示今天、今月、上月、今年的起点/终点时间戳的代码
May 25 PHP
奇怪的PHP引用效率问题分析
Mar 23 PHP
PHP-redis中文文档介绍
Feb 07 PHP
ajax取消挂起请求的处理方法
Mar 18 PHP
PHP array_multisort() 函数的深入解析
Jun 20 PHP
PHP中使用sleep函数实现定时任务实例分享
Aug 21 PHP
js+php实现静态页面实时调用用户登陆状态的方法
Jan 04 PHP
在Debian系统下配置LNMP的教程
Jul 09 PHP
如何利用http协议发布博客园博文评论
Aug 03 PHP
PHP数据库连接mysql与mysqli对比分析
Jan 04 PHP
手把手编写PHP框架 深入了解MVC运行流程
Sep 19 PHP
PHP基于session.upload_progress 实现文件上传进度显示功能详解
Aug 09 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
Windows下IIS6/Apache2.2.4+MySQL5.2+PHP5.2.1安装配置方法
2007/05/03 PHP
使用php+Ajax实现唯一校验实现代码[简单应用]
2011/11/29 PHP
PHP定时更新程序设计思路分享
2014/06/10 PHP
js+php实现静态页面实时调用用户登陆状态的方法
2015/01/04 PHP
php实现字符串首字母大写和单词首字母大写的方法
2015/03/14 PHP
php使用自定义函数实现汉字分割替换功能示例
2017/01/30 PHP
深入学习微信网址链接解封的防封原理visit_type
2019/08/15 PHP
PHP数组array类常见操作示例
2020/05/15 PHP
php array_map()函数实例用法
2021/03/03 PHP
Javascript开发之三数组对象实例介绍
2012/11/12 Javascript
node在两个div之间移动,用ztree实现
2013/03/06 Javascript
jquery中ajax使用error调试错误的方法
2015/02/08 Javascript
纯javascript移动优先的幻灯片效果
2015/11/02 Javascript
解决node.js安装包失败的几种方法
2016/09/02 Javascript
Javascript之面向对象--方法
2016/12/02 Javascript
jQuery+Ajax实现用户名重名实时检测
2017/06/01 jQuery
JavaScript实现简单的树形菜单效果
2017/06/23 Javascript
Vue内部渲染视图的方法
2019/09/02 Javascript
Vue 自定义指令功能完整实例
2019/09/17 Javascript
JS代码检查工具ESLint介绍与使用方法
2020/02/04 Javascript
Javascript confirm多种使用方法解析
2020/09/25 Javascript
[02:51]DOTA2战队出征照拍摄花絮 TI3明星化身时尚男模
2013/07/22 DOTA
PyQt5每天必学之进度条效果
2018/04/19 Python
python画图系列之个性化显示x轴区段文字的实例
2018/12/13 Python
python 利用文件锁单例执行脚本的方法
2019/02/19 Python
python整小时 整天时间戳获取算法示例
2019/02/20 Python
Python常见数据类型转换操作示例
2019/05/08 Python
利用python实现周期财务统计可视化
2019/08/25 Python
python openCV获取人脸部分并存储功能
2019/08/28 Python
优秀食品类广告词
2014/03/19 职场文书
感恩寄语大全
2014/04/11 职场文书
党支部对照检查材料
2014/08/25 职场文书
遗失说明具结保证书
2015/02/26 职场文书
2016年艾滋病宣传活动总结
2016/04/01 职场文书
Pandas实现DataFrame的简单运算、统计与排序
2022/03/31 Python
vue3 自定义图片放大器效果的示例代码
2022/07/23 Vue.js