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 相关文章推荐
《APMServ 5.1.2》使用图解
Oct 23 PHP
php curl基本操作详解
Jul 23 PHP
ThinkPHP模板引擎之导入资源文件方法详解
Jun 18 PHP
PHP中的socket_read和socket_recv区别详解
Feb 09 PHP
MacOS 安装 PHP的图片裁剪扩展Tclip
Mar 25 PHP
php mysql 封装类实例代码
Sep 18 PHP
PHP进制转换实例分析(2,8,16,36,64进制至10进制相互转换)
Feb 04 PHP
PHP查询分页的实现代码
Jun 09 PHP
Laravel中的Blade模板引擎示例详解
Oct 10 PHP
Yii2处理密码加密及验证的方法
May 12 PHP
PHP中define() 与 const定义常量的区别详解
Jun 25 PHP
thinkphp5框架调用其它控制器方法 实现自定义跳转界面功能示例
Jul 03 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侧拉菜单 漂亮,可以向右或者向左展开,支持FF,IE
2009/10/15 PHP
PHP+MYSQL会员系统的登陆即权限判断实现代码
2011/09/23 PHP
PHP采集类snoopy详细介绍(snoopy使用教程)
2014/06/19 PHP
CakePHP框架Model函数定义方法示例
2017/08/04 PHP
laravel 查询数据库获取结果实现判断是否为空
2019/10/24 PHP
PHP如何使用cURL实现Get和Post请求
2020/07/11 PHP
父子窗体间传递JSON格式的数据的代码
2010/12/25 Javascript
javascript判断非数字的简单例子
2013/07/18 Javascript
jquery自定义滚动条插件示例分享
2014/02/21 Javascript
javascript避免数字计算精度误差的方法详解
2014/03/05 Javascript
JS字符串拼接在ie中都报错的解决方法
2014/03/27 Javascript
使用text方法获取Html元素文本信息示例
2014/09/01 Javascript
JavaScript中的类数组对象介绍
2014/12/30 Javascript
javascript实现动态改变层大小的方法
2015/05/14 Javascript
简洁实用的BootStrap jQuery手风琴插件
2016/08/31 Javascript
vue.js表格分页示例
2016/10/18 Javascript
详解webpack解惑:require的五种用法
2017/06/09 Javascript
JavaScript数组基于交换的排序示例【冒泡排序】
2018/07/21 Javascript
vue路由传参的基本实现方式小结【三种方式】
2020/02/05 Javascript
VueJS实现用户管理系统
2020/05/29 Javascript
vue实践---根据不同环境,自动转换请求的url地址操作
2020/09/21 Javascript
JavaScript实现移动端拖动元素
2020/11/24 Javascript
关于你不想知道的所有Python3 unicode特性
2014/11/28 Python
浅谈python中np.array的shape( ,)与( ,1)的区别
2018/06/04 Python
解决jupyter运行pyqt代码内核重启的问题
2020/04/16 Python
Python手动或自动协程操作方法解析
2020/06/22 Python
在线购买廉价折扣书籍和小说:BookOutlet.com
2018/02/19 全球购物
澳大利亚美容产品及化妆品在线:Activeskin
2020/06/03 全球购物
名词解释WEB SERVICE,SOAP,UDDI,WSDL,JAXP,JAXM;JSWDL开发包的介绍。
2012/10/27 面试题
行政主管岗位职责
2013/11/18 职场文书
大学生职业生涯规划范文
2013/12/31 职场文书
教师党性分析材料
2014/02/04 职场文书
力学专业求职信
2014/07/23 职场文书
上学路上观后感
2015/06/16 职场文书
React 高阶组件HOC用法归纳
2021/06/13 Javascript
MySQL的prepare使用以及遇到的bug
2022/05/11 MySQL