一个php函数,能够遍历一个文件夹下的所有文件和子文件夹 。

本文详细解读了一个PHP函数,该函数用于遍历目录并递归处理子目录,展示如何通过文件操作函数如opendir、readdir等实现目录结构的遍历与数据收集。

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

这个函数是别人写的,我整理了一下,加了很多注释。
函数说明:
本函数执行过程:
检测目录->打开目录->读取目录->去除特殊目录->判断子目录里是否还存在文件->如是,再次调用->如不是,将文件条目放入数组->关闭文件夹->返回文件夹条目。

<?php
    /**
    * 将读取到的目录以数组的形式展现出来
    * @return array
    * opendir() 函数打开一个目录句柄,可由 closedir(),readdir() 和 rewinddir() 使用。
    * is_dir() 函数检查指定的文件是否是目录。
    * readdir() 函数返回由 opendir() 打开的目录句柄中的条目。
    * @param array $files  所有的文件条目的存放数组
    * @param string $file  返回的文件条目
    * @param string $dir  文件的路径
    * @param resource $handle  打开的文件目录句柄
    */
    function my_scandir($dir){
        //定义一个数组
        $files=array();
        //检测是否存在文件
        if(is_dir($dir)){
            //打开目录
            if($handle=opendir($dir)) {
                //返回当前文件的条目
                while(($file=readdir($handle))!==false){
                    //去除特殊目录
                    if($file!="." && $file!=".."){
                         //判断子目录是否还存在子目录
                        if(is_dir($dir."/".$file)){
                            //递归调用本函数,再次获取目录
                            $files[$file]=my_scandir($dir."/".$file);
                         }else {
                            //获取目录数组
                            $files[]=$dir."/".$file;
                         }
                     }
                 }
                 //关闭文件夹
                closedir($handle);
                //返回文件夹数组
                return $files;
             }       
         }   
    }
    echo "<pre>";
    print_r(my_scandir("你电脑里面可执行的目录"));
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值