递归创建多级目录

发表日期:2022-08-06 15:58:05 | 来源: | | 浏览(1032) 分类:PHP杂项

十多年前写的,比如要创建a/b/c/d目录得一层层创建,这个函数可以帮您递归创建搞定

ROOT_PATH 为项目根目录

/**
 * 检测目录是否存在/创建多级目录
 * @param String $path 目录路径[D:/a/b] or [a/b/c] or [./a/b] or [/a/b/c] or [../../a/b]
 * @return boolean 目录是否存在/多级目录是否创建成功
 */
function quick_make_dirs($path)
{
    if (is_dir($path)) return true;

    $path = str_replace(ROOT_PATH, '', preg_replace('/[\\\|\/]+/', DS, $path));

    $dirs = explode(DS, $path);

    $dir = ROOT_PATH;

    for ($i = 0; $i < count($dirs); $i++) {

        if ($dirs [$i] == '') continue;

        $dir .= $dirs [$i] . DS;

        if (!is_dir($dir)) {
            //mkdir($dir, 0777) or TRIGGER_ERROR("!-目录[$dir]不可写,请手动设置目录权限!");
            if (!mkdir($dir, 0777)) {
                break;
            }

        }
    }

    return is_dir($dir) ? true : false;
}


集速网 copyRight © 2015-2025 宁ICP备15000399号-1 宁公网安备 64010402001209号
与其临渊羡鱼,不如退而结网
欢迎转载、分享、引用、推荐、收藏。