用php递归和迭代创建级联目录

<?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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值