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 07 PHP
深入解析PHP内存管理之谁动了我的内存
Jun 20 PHP
PHP处理SQL脚本文件导入到MySQL的代码实例
Mar 17 PHP
php实现的常见排序算法汇总
Sep 08 PHP
PHP屏蔽过滤指定关键字的方法
Nov 03 PHP
PHP中list()函数用法实例简析
Jan 08 PHP
PHP线程的内存回收问题
Jul 08 PHP
PHP重定向与伪静态区别
Feb 19 PHP
php使用flock阻塞写入文件和非阻塞写入文件的实例讲解
Jul 10 PHP
php检测mysql表是否存在的方法小结
Jul 20 PHP
thinkPHP中U方法加密传递参数功能示例
May 29 PHP
PHP过滤器 filter_has_var() 函数用法实例分析
Apr 23 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 Hash算法:Times33算法代码实例
2015/05/13 PHP
PHP面向对象之里氏替换原则简单示例
2018/04/08 PHP
PHP设计模式(八)装饰器模式Decorator实例详解【结构型】
2020/05/02 PHP
关于二级域名下使用一级域名下的COOKIE的问题
2011/11/07 Javascript
JavaScript实现点击按钮后变灰避免多次重复提交
2013/07/15 Javascript
jquery遍历数组与筛选数组的方法
2013/11/05 Javascript
浅谈Javascript中深复制
2014/12/01 Javascript
JavaScript实现计算字符串中出现次数最多的字符和出现的次数
2015/03/12 Javascript
js实现创建删除html元素小结
2015/09/30 Javascript
javascript的BOM
2016/05/03 Javascript
去除字符串左右两边的空格(实现代码)
2016/05/12 Javascript
常用原生js自定义函数总结
2016/11/20 Javascript
Angularjs中的验证input输入框只能输入数字和小数点的写法(推荐)
2017/08/16 Javascript
react redux入门示例
2018/04/19 Javascript
Angular6 用户自定义标签开发的实现方法
2019/01/08 Javascript
javascript中的相等操作符(==与===区别)
2019/12/21 Javascript
微信小程序实现吸顶效果
2020/01/08 Javascript
[02:25]DOTA2英雄基础教程 虚空假面
2014/01/02 DOTA
python实现简单socket程序在两台电脑之间传输消息的方法
2015/03/13 Python
为Python的web框架编写前端模版的教程
2015/04/30 Python
Python基础知识_浅谈用户交互
2017/05/31 Python
Python MySQL数据库连接池组件pymysqlpool详解
2017/07/07 Python
python自动化生成IOS的图标
2018/11/13 Python
python实现给微信指定好友定时发送消息
2019/04/29 Python
详解python中自定义超时异常的几种方法
2019/07/29 Python
Python3标准库glob文件名模式匹配的问题
2020/03/13 Python
tensorflow2.0教程之Keras快速入门
2021/02/20 Python
中国宠物用品商城:E宠商城
2016/08/27 全球购物
中专三年学习的个人自我评价
2013/12/12 职场文书
民主评议党员自我评议范文2014
2014/09/26 职场文书
幼儿园园长安全责任书
2015/05/08 职场文书
法制教育主题班会
2015/08/13 职场文书
Python中的套接字编程是什么?
2021/06/21 Python
SpringBoot+Vue+JWT的前后端分离登录认证详细步骤
2021/09/25 Java/Android
手写实现JS中的new
2021/11/07 Javascript
使用Cargo工具高效创建Rust项目
2022/08/14 Javascript