PHP 递归遍历文件夹及子目录文件

老牛浏览 275评论 0发表于

1. 代码

php
/*
 * @param1 string $dir 文件路径
 * @param2 int $level  目录层级
 * */
function myScanDir($dir,$level=0){
    // 如果不是目录则返回
    if (!is_dir($dir)) return false;
    // 打开目录
    $o = opendir($dir);
    // 遍历当前目录
    while($filename = readdir($o)){
        // 如果是 . 或 .. ,输出后跳出
        if($filename == '.' || $filename == '..'){
            echo str_repeat('  ',$level) . $filename . '<br>';
            continue;
        }
        // 判断是目录还是文件
        if(is_dir($dir . '/' . $filename)){
            echo str_repeat('  ',$level) . $filename . '<br>';
            // 递归调用遍历子目录,目录层级 +1
            myScanDir($dir . '/' . $filename,$level + 1);
        }else{
            echo str_repeat('  ',$level) . $filename . '<br>';
        }
    }
    return true;
}

myScanDir('./',0);

2. 输出结果

bash
.
..
111.txt
demo
    .
    ..
    hello
        .
        ..
        pic1.bmp
    text.txt
index.php
点赞
收藏
暂无评论,快来发表评论吧~
私信
老牛@ilaoniu
老牛,俗称哞哞。单纯的九零后理工小青年。喜欢折腾,爱玩,爱音乐,爱游戏,爱电影,爱旅游...
最后活跃于