首页 > php文件操作 > php 创建多级目录

php 创建多级目录

php提供了mkdir来创建文件,但对应5.0一下的版本不支持递归创建多级目录,也就是说给定要创建的目录的上级目录不存在,那么就会创建失败,5.0及以上版本通过吧第三个参数设置为TRUE,就能递归创建指定的目录,不过自己实现一个递归创建多目录的函数也很简单,具体代码如下:

function mkdirs($dir){ 
    if(!is_dir($dir)){ 
        if(!mkdirs(dirname($dir))){ 
            return FALSE; 
        } 
 
        if(!mkdir($dir, 0777)){ 
            return FALSE; 
        } 
    }
    return TRUE; 
} 
 
$path="/aa/bb/cc/cd"; //要创建的目录 
$mode=0755; //创建目录的模式 
createdir($path,$mode);//测试

php创建目录的函数是mkdir($dir,$mode);但是它每次只能创建一个目录,也就是说它不能一次创建多级目录,小编整理了两个可以递归创建目录的方法,代码如下:

<?php 
/* 
*mkdir($dir,$mode) 
*PHP 递归创建目录 
*/ 
function mkdirs($dir, $mode = 0777) 
{ 
    if (is_dir($dir) || @mkdir($dir, $mode)){ 
        return true; 
    } 
    if (!mkdirs(dirname($dir), $mode)){ 
        return false; 
    } 
    return @mkdir($dir, $mode); 
} 
 
function mkdirs($dir, $mode = 0777) 
{ 
    $dirArray = explode("/",$dir); 
    $dirArray = array_filter($dirArray); 
    
    $created = ""; 
    foreach($dirArray as $key => $value){ 
        if(!emptyempty($created)){ 
            $created .= "/".$value; 
            if(!is_dir($created)){ 
                mkdir($created,$mode); 
            } 
        }else{ 
            if(!is_dir($value)){ 
                mkdir($value,$mode); 
            } 
            $created .= $value; 
        } 
    } 
} 
 
//代码应用实例 
$path="abc/ff/ss/"; 
mkdirs($path,$mode = 0777); 
?>


本文地址:http://www.phprm.com/wenjian/fs3806.html

转载随意,但请附上文章地址:-)

标签:php 创建多级目录

相关文章

发表留言