首页 > 编程语言 >php获取目录下所有文件及目录

php获取目录下所有文件及目录

时间:2023-05-12 10:13:03浏览次数:38  
标签:files arr getDir value 获取 path php 目录 dir

来源:http://www.shanhubei.com/archives/2614.html http://www.shanhubei.com/archives/1940.html

获取某目录下所有子文件和子目录


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));

标签:files,arr,getDir,value,获取,path,php,目录,dir
From: https://www.cnblogs.com/shanhubei/p/17392975.html

相关文章

  • bms电池管理系统 锂电池算法SOC代码 获取锂电池SOC采用
    bms电池管理系统锂电池算法SOC代码获取锂电池SOC采用的是电流积分法,电化学阻抗法电流积分法又称为安时积分法或库伦计数,通过将电池电流对时间进行积分来计算电池的荷电状态。这种方法对于计算电池放出的电量有一定的准确度,但缺乏参照点,不能计算电池的初始SOC,也无法预测电池因为......
  • WebRTC获取IP地址问题,Uncaught TypeError: Cannot read property '1' of null
    WebRTC获取IP地址问题,UncaughtTypeError:Cannotreadproperty'1'ofnull临时接了个任务,客户要求某个账号只能在某个ip或者mac上登录,其余的情况的登录都要报错,首先就要解决看看怎么获取ip使用的获取IP的语句如下,类似的在网上很多,主要的获取的逻辑都是一样的<script>......
  • 多线程获取返回值
    有这样一个代码:importthreadingdefaa(data):returndataforiinrange(5):threading.Thread(target=aa,args=(i,)).start()获取返回值:importthreadingimporttimeclassResponse:responses={}defadd_th(self,name,data):self.response......
  • 前端目录-唯一客服系统文档中心
    客服项目前端简介唯一客服的前端部分,主要是使用的elementui框架,这个框架是基于vue.js框架的UI封装。为了符合后端开发的习惯,本项目是使用cdn引入的方式引入的elementui,而没有使用npm安装部署,不需要独立的nodejs环境编译。模板渲染仍然是采用Golang的Gin框架进行渲染输出,......
  • mysql:安装phpmyadmin(phpMyAdmin 5.2.1 / PHP 8.2.5 / mysqld 8.0.33)
    一,下载phpmyadmin:官网:https://www.phpmyadmin.net/如图: 注意不同版本的环境需求可以得到下载地址后直接在linux上wget[root@imgphpmyadmin]#wgethttps://files.phpmyadmin.net/phpMyAdmin/5.2.1/phpMyAdmin-5.2.1-all-languages.zip解压:[root@imgphpmyadm......
  • Thinkphp5.1允许uni-app的H5跨域请求接口解决方法
    情景:   uni-app使用vue框架开发混合APP,虽然APP或者小程序没有跨域,但希望就是写完这个既有H5,又有APP,小程序等,所以能通过后端解决跨域最好。但是不知道是vue的原因还是什么,在PHP接口基类中添加了header头完全不起作用。官方给出的方法也有,具体可以看https://uniapp.dcloud.io/ap......
  • 对给定目录数据进行新建目录
    对给定目录数据进行新建目录目标:1)如图2)如图importosimportshutil'''给定一个目录的数据,生成目录下所有文件'''deffile_abso_path(dir_path):'''func:计算给定父类目录下的所有文件的绝对路径'''final_path_list=[]forpar......
  • 在PhpStorm项目工具窗口中显示.idea文件夹
    转自:https://www.codenong.com/33010238/ 对于.idea,它也有专用的注册表设置(默认情况下,我至少在PhpStorm中启用了此设置)Help|FindAction...并查找registry(或在Windows上使用默认键盘映射通过Maintenance Ctrl+Alt+Shift+/)进入内部-查找projectView.hide.dot.idea条......
  • 计算给定目录下文件路径
    计算给定目录下所有文件的绝对路径deffile_abso_path(dir_path):'''func:计算给定父类目录下的所有文件的绝对路径'''final_path_list=[]forparent,dirnames,filenamesinos.walk(dir_path,followlinks=True):#按照父类目录到子类目录进行......
  • php:配置php.ini(PHP 8.2.5)
    一,配置错误日志1,注意在生产环境中保持以下各项的默认值:error_reporting=E_ALL&~E_DEPRECATED&~E_STRICTdisplay_errors=Offlog_errors=On说明:如果display_error=On则会在页面上显示报错信息,这在生产环境中是不允许的,如图:所以不要修改生产环境中的disp......