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 相关文章推荐
c#中的实现php中的preg_replace
Dec 21 PHP
php 智能404跳转代码,适合换域名没改变目录的网站
Jun 04 PHP
Linux下实现PHP多进程的方法分享
Aug 16 PHP
PHP实现数字补零功能的2个函数介绍
May 12 PHP
ThinkPHP 3.2 数据分页代码分享
Oct 14 PHP
PHP实现C#山寨ArrayList的方法
Jul 16 PHP
PHP获取某个月最大天数(最后一天)的方法
Jul 29 PHP
PHP+Mysql+jQuery实现发布微博程序 php篇
Oct 15 PHP
php版微信开发Token验证失败或请求URL超时问题的解决方法
Sep 23 PHP
ThinkPHP模板标签eq if 中区分0,null,false的方法
Mar 24 PHP
PHP生成腾讯云COS接口需要的请求签名
May 20 PHP
ThinkPHP 5.x远程命令执行漏洞复现
Sep 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
source.php查看源文件
2006/12/09 PHP
Zend studio文件注释模板设置方法
2013/09/29 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(四)
2014/06/23 PHP
33道php常见面试题及答案
2015/07/06 PHP
PHP高并发和大流量解决方案整理
2019/12/24 PHP
尽可能写&quot;友好&quot;的&quot;Javascript&quot;代码
2007/01/09 Javascript
网上应用的一个不错common.js脚本
2007/08/08 Javascript
juqery 学习之三 选择器 层级 基本
2010/11/25 Javascript
JavaScript ( (__ = !$ + $)[+$] + ({} + $)[_/_] +({} + $)[_/_] )
2011/02/25 Javascript
原生js实现半透明遮罩层效果具体代码
2013/06/06 Javascript
JavaScript设计模式之建造者模式介绍
2014/12/28 Javascript
AngularJS学习笔记之TodoMVC的分析
2015/02/22 Javascript
基于jQuery Circlr插件实现产品图片360度旋转
2015/09/20 Javascript
纯JS实现可拖拽表单的简单实例
2016/09/02 Javascript
Angular实现购物车计算示例代码
2017/02/21 Javascript
JS正则获取HTML元素的方法
2017/03/31 Javascript
jQuery除指定区域外点击任何地方隐藏DIV功能
2017/11/13 jQuery
jQuery Datatables表头不对齐的解决办法
2017/11/27 jQuery
Vue resource三种请求格式和万能测试地址
2018/09/26 Javascript
Vue实现简易翻页效果源码分享
2018/11/08 Javascript
vue项目首屏加载时间优化实战
2019/04/23 Javascript
jquery登录的异步验证操作示例
2019/05/09 jQuery
Angular请求防抖处理第一次请求失效问题
2019/05/17 Javascript
深入理解webpack process.env.NODE_ENV配置
2020/02/23 Javascript
详解ES6中class的实现原理
2020/10/03 Javascript
python中查看变量内存地址的方法
2015/05/05 Python
示例详解Python3 or Python2 两者之间的差异
2018/08/23 Python
python和pywin32实现窗口查找、遍历和点击的示例代码
2020/04/01 Python
完美解决keras保存好的model不能成功加载问题
2020/06/11 Python
浅谈TensorFlow之稀疏张量表示
2020/06/30 Python
python 利用百度API识别图片文字(多线程版)
2020/12/14 Python
幼儿园中班上学期评语
2014/04/18 职场文书
会计求职信范文
2014/05/24 职场文书
酒店财务经理岗位职责
2015/04/08 职场文书
餐馆开业致辞
2015/08/01 职场文书
初中班干部工作总结
2015/08/10 职场文书