PHP实现遍历文件夹及子文件夹

本文介绍了一种使用PHP实现的递归遍历文件夹的方法,并通过树状结构清晰展示每个文件及其所在的子文件夹层级。该方法适用于需要了解整个文件夹结构的场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

有看到过一些关于无限极分类,树结构的实现方面的例子,然后想到遍历文件夹和这个很像。所以将那些思想用到这个里面来,实现遍历文件夹,显示出来的时候,看起来一层一层的,知道谁是谁里面的文件


$path="../test";


getFiles($path);

/*

$path :要遍历的目录

$k: 记录有多少个文件及文件夹,同时作为数组的下标用

$depth: 记录文件夹的深度

*/

function getFiles($path,$k=1,$depth=0){
    global $arr,$key;
    $key=$k;
    if(is_dir($path)){  //文件存在且为目录时,真  
       if($ch1=opendir($path)){
           while(($file=readdir($ch1)) !==false){//返回目录中下一个文件的文件名,失败则返回false
               if($file !="."&&$file!=".."){
                    $flag=str_repeat("|__",$depth);//将深度具体化为看得见的符号,显示出来
                    $arr[$key]=$flag.$file;
                    $key++;
                   $subpath=$path."/".$file;
                   if(is_dir($subpath)){
                       getFiles($subpath,$key,$depth+1);
                   }
                   
               }
           
           }
       }
    }
}


echo "<table>";
echo "<tr ><th width=\"100px\">编号</th><th width=\"100px\">文件名</th></tr>";
foreach($arr as $key=>$v){
    echo "<tr><td>".$key."</td><td>".$v."</td></tr>";
}

echo "</table>";



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值