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 相关文章推荐
人大复印资料处理程序_补充篇
Oct 09 PHP
深入解析php模板技术原理【一】
Jan 10 PHP
PHP数组交集的优化代码分析
Mar 06 PHP
php异常:Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE  eval()'d code error
May 19 PHP
php数组函数序列之array_search()- 按元素值返回键名
Nov 04 PHP
利用PHP生成静态HTML文档的原理
Oct 29 PHP
微信公众号开发之微信公共平台消息回复类实例
Nov 14 PHP
php文件缓存类用法实例分析
Apr 22 PHP
thinkPHP多域名情况下使用memcache方式共享session数据的实现方法
Jul 21 PHP
Ajax中的JSON格式与php传输过程全面解析
Nov 14 PHP
PHP生成随机码的思路与方法实例探索
Apr 11 PHP
PHP中多字节字符串操作实例详解
Aug 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下载远程文件到本地存储的方法
2015/03/24 PHP
wamp服务器访问php非常缓慢的解决过程
2015/07/01 PHP
PHP弹出对话框技巧详细解读
2015/09/26 PHP
基于CI框架的微信网页授权库示例
2016/11/25 PHP
php更新cookie内容的详细方法
2019/09/30 PHP
基于jQuery实现的旋转彩圈实例
2015/06/26 Javascript
JS实现的竖向折叠菜单代码
2015/10/21 Javascript
理解js回收机制通俗易懂版
2016/02/29 Javascript
什么是JavaScript注入攻击?
2016/09/14 Javascript
jQuery使用eraser.js插件实现擦除、刮刮卡效果的方法【附eraser.js下载】
2017/04/28 jQuery
Js实现中国公民身份证号码有效性验证实例代码
2017/05/03 Javascript
vue在手机中通过本机IP地址访问webApp的方法
2018/08/15 Javascript
VUE v-model表单数据双向绑定完整示例
2019/01/21 Javascript
详解nodejs 开发企业微信第三方应用入门教程
2019/03/12 NodeJs
create-react-app中添加less支持的实现
2019/11/15 Javascript
解决vue bus.$emit触发第一次$on监听不到问题
2020/07/28 Javascript
我所理解的JavaScript中的this指向
2020/09/04 Javascript
Vue仿Bibibili首页的问题
2021/01/21 Vue.js
举例讲解Python面相对象编程中对象的属性与类的方法
2016/01/19 Python
python实现音乐下载的统计
2018/06/20 Python
Python根据欧拉角求旋转矩阵的实例
2019/01/28 Python
Python os.access()用法实例
2019/02/18 Python
详解利用python+opencv识别图片中的圆形(霍夫变换)
2019/07/01 Python
浅谈python print(xx, flush = True) 全网最清晰的解释
2020/02/21 Python
python GUI库图形界面开发之PyQt5工具栏控件QToolBar的详细使用方法与实例
2020/02/28 Python
Keras-多输入多输出实例(多任务)
2020/06/22 Python
Python图像处理二值化方法实例汇总
2020/07/24 Python
Html5插件教程之添加浏览器放大镜效果的商品橱窗
2016/01/07 HTML / CSS
e路東瀛(JAPANiCAN)香港:日本旅游、日本酒店和温泉旅馆预订
2018/11/21 全球购物
演讲稿怎么写才完美
2014/01/02 职场文书
鲜果饮品店创业计划书
2014/01/21 职场文书
财务管理专业自荐书
2014/09/02 职场文书
预备党员学习十八届三中全会精神思想汇报
2014/09/13 职场文书
预防职务犯罪警示教育心得体会
2016/01/15 职场文书
班干部竞选演讲稿(精选5篇)
2019/09/24 职场文书
详解JSON.parse和JSON.stringify用法
2022/02/18 Javascript