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 access 数据连接与读取保存编辑数据的实现代码
May 12 PHP
php代码运行时间查看类代码分享
Aug 06 PHP
PHP 将逗号、空格、回车分隔的字符串转换为数组的函数
Jun 07 PHP
PHP处理excel cvs表格的方法实例介绍
May 13 PHP
php三种实现多线程类似的方法
Oct 30 PHP
PHP常见数组函数用法小结
Mar 21 PHP
PHP随机数 C扩展随机数
May 04 PHP
php array_map使用自定义的函数处理数组中的每个值
Oct 26 PHP
PHP利用超级全局变量$_GET来接收表单数据的实例
Nov 05 PHP
php和vue配合使用技巧和方法
May 09 PHP
Laravel find in set排序实例
Oct 09 PHP
php 获取音视频时长,PHP 利用getid3 获取音频文件时长等数据
Apr 01 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
使用VisualStudio开发php的图文设置方法
2010/08/21 PHP
php实现文本数据导入SQL SERVER
2015/05/17 PHP
PHP substr()函数参数解释及用法讲解
2017/11/23 PHP
如何简单地用YUI做JavaScript动画
2007/03/10 Javascript
风吟的小型JavaScirpt库 (FY.JS).
2010/03/09 Javascript
uploadify在Firefox下丢失session问题的解决方法
2013/08/07 Javascript
js查找某元素中的所有图片地址的方法
2014/01/16 Javascript
JS往数组中添加项性能分析
2015/02/25 Javascript
在Node.js应用中读写Redis数据库的简单方法
2015/06/30 Javascript
jQuery网页版打砖块小游戏源码分享
2015/08/20 Javascript
学习JavaScript鼠标响应事件
2015/12/25 Javascript
微信小程序 教程之WXML
2016/10/18 Javascript
jQuery下拉菜单的实现代码
2016/11/03 Javascript
Vue.js组件tree实现省市多级联动
2016/12/02 Javascript
jQuery插件ImgAreaSelect实现头像上传预览和裁剪功能实例讲解一
2017/05/26 jQuery
Angular.js中下拉框实现渲染html的方法
2017/06/18 Javascript
element-ui循环显示radio控件信息的方法
2018/08/24 Javascript
vue多个元素的样式选择器问题
2019/11/29 Javascript
JS实现无限轮播无倒退效果
2020/09/21 Javascript
[55:25]2018DOTA2亚洲邀请赛3月29日 小组赛A组 VG VS OG
2018/03/30 DOTA
[45:25]OG vs EG 2019国际邀请赛淘汰赛 胜者组 BO3 第一场 8.22
2019/09/05 DOTA
深度定制Python的Flask框架开发环境的一些技巧总结
2016/07/12 Python
Python PyQt5标准对话框用法示例
2017/08/23 Python
python函数式编程学习之yield表达式形式详解
2018/03/25 Python
Python简单读写Xls格式文档的方法示例
2018/08/17 Python
对python3 sort sorted 函数的应用详解
2019/06/27 Python
Python中*args和**kwargs的区别详解
2019/09/17 Python
Python中Subprocess的不同函数解析
2019/12/10 Python
python实现音乐播放和下载小程序功能
2020/04/26 Python
解决tensorflow读取本地MNITS_data失败的原因
2020/06/22 Python
灵活运用CSS3特性绘制简易版围棋效果
2016/09/28 HTML / CSS
CSS3动画animation实现云彩向左滚动
2014/05/09 HTML / CSS
食堂采购员岗位职责
2014/03/17 职场文书
学风建设演讲稿
2014/09/12 职场文书
2014年污水处理厂工作总结
2014/12/19 职场文书
高考升学宴主持词
2019/06/21 职场文书