php 取目录下所有文件,可遍历子目录,

<?php

 

// getFolderFiles 取 $folder下所有完整路径文件名 (无目录), $ergodic 表示 是否遍历子目录,默认不遍历
// 返回 array 如 [ 'f:/abc/tmp0/a.txt', 'f:/abc/tmp0/b.txt', 'f:/abc/tmp0/dic1/a.txt' ]
function getFolderFiles($folder, $ergodic = false) {
    //首先先读取文件夹
    $names = scandir($folder);
    $getnamelist = [];
    // 
    foreach ($names as $name) {
        $fullname = $folder . '/' . $name;
        if (is_dir($fullname)) {//如果是文件夹则执行
            if($ergodic == false) {
                continue;
            }
            if ($name == '.' || $name == '..') {//判断是否为系统隐藏的文件.和..  如果是则跳过否则就继续往下走,防止无限循环再这里。
                continue;
            }
            // f:/abc/tmp0/1-composer.json
            $list0 = getFolderFiles($fullname, $ergodic);//因为是文件夹所以再次调用自己这个函数,把这个文件夹下的文件遍历出来
            $getnamelist = array_merge($getnamelist, $list0);
        } else {
            array_push($getnamelist, $fullname);
        }
    }
    return $getnamelist;
}

 

var_dump(getFolderFiles('f:/abc/tmp0', true));
 
 
//ps: 参考来的,增加点是否遍历子目录与返回array,可读下下
posted @ 2020-03-07 11:21  以函  阅读(616)  评论(0)    收藏  举报