<?php
//递归创建级联目录
function makedir1($path){
if(is_dir($path)){//已经是目录了就不用创建
return true;
}
if(is_dir(dirname($path))){//父目录已经存在,直接创建
return mkdir($path);
}
makedir(dirname($path));//创建各级父目录
/*
makedir('./a/b/c/d')
makedir('./a/b/c')
makedir('./a/b/')
*/
return mkdir($path);//因为有父目录,所以可以创建路径
}
makedir1('./a/b/c/d');
//迭代创建级联目录
function makedir2($path){
$arr=array();
while(!is_dir($path)){
array_push($arr,$path);//把路径中的各级父目录压入到数组中去,直接有父目录存在为止(即上面一行is_dir判断出来有目录,条件为假退出while循环)
$path=dirname($path);//父目录
}
if(empty($arr)){//arr为空证明上面的while循环没有执行,即目录已经存在
echo $path,'已经存在';
return true;
}
// print_r($arr);//Array ( [0] => aa/bb/cc/dd [1] => aa/bb/cc [2] => aa/bb [3] => aa )
while(count($arr)){
$parentdir=array_pop($arr);//弹出最后一个数组单元
mkdir($parentdir);
echo '创建'.$parentdir.'成功';
}
}
makedir2('aa/bb/cc/dd');
?>
燕十八公益PHP培训
课堂地址:YY频道88354001
学习社区:www.zixue.it
用php递归和迭代创建级联目录
最新推荐文章于 2024-09-30 11:04:46 发布