php获取目录下文件夹列表(递归)

时间:2023年09月18日

/

来源:网络

/

编辑:佚名

获取目录下所有子目录的文件夹列表(递归函数返回的是路径的全称)
应用案例
点击复制代码 PHP
$url="D:/wwwroot/78moban.com/ui/";
$list=RemoveMoreSpaces($url);
print_r($list);
输出结果为:
Array ( [0] => D:/wwwroot/78moban.com/ui/code/list [1] => D:/wwwroot/78moban.com/ui/code [2] => D:/wwwroot/78moban.com/ui/css [3] => D:/wwwroot/78moban.com/ui/img [4] => D:/wwwroot/78moban.com/ui/js [5] => D:/wwwroot/78moban.com/ui/tinymce/langs [6] => D:/wwwroot/78moban.com/ui/tinymce/skins [7] => D:/wwwroot/78moban.com/ui/tinymce )
函数
点击复制代码 PHP
function GetDirsInDir_Recursive($dir)
{
    $dirs = array();
    if (!file_exists($dir)) {
        return array();
    }
    if (!is_dir($dir)) {
        return array();
    }
    $dir = str_replace('\\', '/', $dir);
    if (substr($dir, -1) !== '/') {
        $dir .= '/';
    }
    if (function_exists('scandir')) {
        foreach (scandir($dir, 0) as $d) {
            if (is_dir($dir . $d)) {
                if (($d != '.') && ($d != '..')) {
                    $array = GetDirsInDir($dir . $d);
                    if (count($array) > 0) {
                        foreach ($array as $key => $value) {
                            $dirs[] = $dir . $d . '/' . $value;
                        }
                    }
                    $dirs[] = $dir . $d;
                }
            }
        }
    } else {
        $handle = opendir($dir);
        if ($handle) {
            while (false !== ($file = readdir($handle))) {
                if ($file != "." && $file != "..") {
                    if (is_dir($dir . $file)) {
                        $array = GetDirsInDir($dir . $file);
                        if (count($array) > 0) {
                            foreach ($array as $key => $value) {
                                $dirs[] = $dir . $file . '/' . $value;
                            }
                        }
                        $dirs[] = $dir . $file;
                    }
                }
            }
            closedir($handle);
        }
    }
    return $dirs;
}
猜你需要

豫ICP备2021026617号-1  豫公网安备:41172602000185   Copyright © 2021-2028 www.78moban.com/ All Rights Reserved

本站作品均来自互联网,转载目的在于传递更多信息,并不代表本站赞同其观点和对其真实性负责。如有侵犯您的版权,请联系 1565229909#qq.com(把#改成@),我们将立即处理。