//循环创建目录
//$dirs为一个数组  元素为路径
//$dirs=array(
//'Text/',
//'Tpl/'
//)
/*foreach($dirs as $dir){  //$dir为路劲不包含文件名
    if(is_dir($dir)) mk_dir($dir,0777);
}
*/

//方法2(thinkphp)
// 递归创建目录
/*function mk_dir($dir, $mode = 0777) {
    //只创建1级目录 $dir='./a';
    if (is_dir($dir) || @mkdir($dir, $mode))
        return true;
    
    //创建多级目录  $dir='./a/b/c/d';
    if (!mk_dir(dirname($dir), $mode))
        return false;
    return @mkdir($dir, $mode);
}
$dir='./a/b/c/d';
mk_dir($dir);
*/

//方法3
//mkdir第三个参数默认false就是单层创建,如果设置为true就是支持多层目录创建(不用方法2那么麻烦)
function mkdirs($dir, $mode = 0777, $makeindex = TURE){
    if(!is_dir($dir)){
        mkdirs(dirname($dir));
        @mkdir($dir,$mode);
        if(!empty($makeindex)){
            //$touch($dir.'/index.html');
            //$chmod($dir.'/index.html',0777);
        }
    }
    return true;
}
$dir='./a';
//mkdirs($dir);

//方法3递归
/*
mkdirs(dirname('./a/b/c/d')) -->mkdirs(dirname('./a/b/c'))
-->mkdirs(dirname('./a/b'))-->mkdirs(dirname('./a'))
-->mkdirs(dirname('.'))
执行到此时
if(!is_dir('.')) .为当前路劲,所以!is_dir('.')为false
-->return true 
-->@mkdir('./a',0777)-->@mkdir('./a/b',0777)
-->@mkdir('./a/b/c',0777)-->@mkdir('./a/b/c/d',0777);
*/

//方法4
$dir='./a/b/c/d'; if (!mkdir($dir, 0777, true)) { die('Failed to create folders...'); }

 

posted on 2012-12-07 10:54  睡着的糖葫芦  阅读(463)  评论(0编辑  收藏  举报