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 相关文章推荐
session 的生命周期是多长
Oct 09 PHP
PHP4(windows版本)中的COM函数
Oct 09 PHP
php实现mysql事务处理的方法
Dec 25 PHP
php截取字符串函数分享
Feb 02 PHP
PHP获取POST数据的几种方法汇总
Mar 03 PHP
php按单词截取字符串的方法
Apr 07 PHP
[原创]ThinkPHP让../Public在模板不解析(直接输出)的方法
Oct 09 PHP
php面向对象值单例模式
May 03 PHP
PHP实现的方程求解示例分析
Nov 11 PHP
php array_reverse 以相反的顺序返回数组实例代码
Apr 11 PHP
Laravel5.* 打印出执行的sql语句的方法
Jul 24 PHP
分享8个Laravel模型时间戳使用技巧小结
Feb 12 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
图形数字验证代码
2006/10/09 PHP
转PHP手册及PHP编程标准
2006/12/17 PHP
Yii学习总结之安装配置
2015/02/22 PHP
给WordPress的编辑后台添加提示框的代码实例分享
2015/12/25 PHP
Laravel框架验证码类用法实例分析
2019/09/11 PHP
确保Laravel网站不会被嵌入到其他站点中的方法
2019/10/18 PHP
JS控制显示隐藏兼容问题(IE6、IE7、IE8)
2010/04/01 Javascript
复选框全选与全不选操作实现思路
2013/08/18 Javascript
jQuery中get()方法用法实例
2014/12/27 Javascript
javascript 中的 delete及delete运算符
2015/11/15 Javascript
分享jQuery网页元素拖拽插件
2020/12/01 Javascript
深入浅析JavaScript函数前面的加号和叹号
2016/07/09 Javascript
Node.js利用断言模块assert进行单元测试的方法
2017/09/28 Javascript
基于Vue、Vuex、Vue-router实现的购物商城(原生切换动画)效果
2018/01/09 Javascript
webpack配置打包后图片路径出错的解决
2018/04/26 Javascript
Vue中的字符串模板的使用
2018/05/17 Javascript
python修改操作系统时间的方法
2015/05/18 Python
Python高级特性与几种函数的讲解
2019/03/08 Python
python制作填词游戏步骤详解
2019/05/05 Python
Python3 实现串口两进程同时读写
2019/06/12 Python
在pycharm下设置自己的个性模版方法
2019/07/15 Python
为什么从Python 3.6开始字典有序并效率更高
2019/07/15 Python
浅析python内置模块collections
2019/11/15 Python
django xadmin中form_layout添加字段显示方式
2020/03/30 Python
关于matplotlib-legend 位置属性 loc 使用说明
2020/05/16 Python
Ootori在线按摩椅店:一家专业的按摩椅制造商
2019/04/10 全球购物
Java如何支持I18N?
2016/10/31 面试题
优秀应届毕业生自荐信
2013/11/16 职场文书
中学生打架检讨书
2014/02/10 职场文书
2014婚礼司仪主持词
2014/03/14 职场文书
研讨会主持词
2014/04/02 职场文书
小学生常见病防治方案
2014/06/06 职场文书
践行三严三实心得体会(2016推荐篇)
2016/01/06 职场文书
2016高中社会实践心得体会范文
2016/01/14 职场文书
Python打包exe时各种异常处理方案总结
2021/05/18 Python
解决Pytorch半精度浮点型网络训练的问题
2021/05/24 Python