/**
* 一个深层创建目录的问题
*
问题分析:
* 1:目录必须得有 /分界,如果没有的话,直接在当前目录下创建目录
* 2:第二种情况则是有
/分界,这样的话,把目录分割成一个数组 以 / 分割
*
-------------------------------------------------------------------------
*
设计步骤:
* 1:判断传递的目录参数是否已经存在,存在的话直接返回false
* 2:清除目录参数的最右边的 /
不管有没有此符号,都清除吧
* 3:判断参数中是否存在深层目录的现象,如果不存在则在当前的目录创建目录
*
4:存在深层目录的情况,用一个变量记录创建目录的情况
*
5:如果存在深层目录,则必须判断一下子目录是否存在,如果存在,则直接进入下一级子目录
*
6:成功创建目录返回true
*/
$dir = "a/b/c/d/e/f/";
function
create_dir($parameter){
//判断目录是否已存在
if(file_exists($parameter)){
return
false;
}else{
//如果给定的目录不存在 / 则在当前目录直接创建目录
$parameter =
rtrim($parameter,'/');
//指定当前的目录
$dir =
'./';
if(!strpos($parameter,'/')){
mkdir($parameter);
}else{
//存在
/ 则通过循环的方式深层创建目录
$par_arr =
explode('/',$parameter);
foreach($par_arr as
$key=>$value){
$dir .=
$value.'/';
if(!file_exists($dir)){
mkdir($dir);
}
}
}
return
true;
}
}
if(create_dir($dir)){
echo
"目录创建成功!";
}else{
echo
"目录已存在,不要重复创建!";
}
?>