当前位置:首页 > PHP教程 > php文件操作 > 列表

php 创建多级目录

发布:smiling 来源: PHP粉丝网  添加日期:2014-07-18 11:13:55 浏览: 评论:0 

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

  1. function mkdirs($dir){ 
  2.     if(!is_dir($dir)){ 
  3.         if(!mkdirs(dirname($dir))){ 
  4.             return FALSE; 
  5.         } 
  6.  
  7.         if(!mkdir($dir, 0777)){ 
  8.             return FALSE; 
  9.         } 
  10.     } 
  11.  
  12.     return TRUE; 
  13.  
  14.   $path="/aa/bb/cc/cd"//要创建的目录 
  15.    $mode=0755; //创建目录的模式 
  16.    createdir($path,$mode);//测试 

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

  1. <?php 
  2. /* 
  3. *mkdir($dir,$mode) 
  4. *PHP 递归创建目录 
  5. */ 
  6. function mkdirs($dir$mode = 0777) 
  7.     if (is_dir($dir) || @mkdir($dir$mode)){ 
  8.         return true; 
  9.     } 
  10.     if (!mkdirs(dirname($dir), $mode)){ 
  11.         return false; 
  12.     } 
  13.     return @mkdir($dir$mode); 
  14.  
  15. function mkdirs($dir$mode = 0777) 
  16.     $dirArray = explode("/",$dir); 
  17.     $dirArray = array_filter($dirArray); 
  18.     
  19.     $created = ""
  20.     foreach($dirArray as $key => $value){ 
  21.         if(!emptyempty($created)){ 
  22.             $created .= "/".$value
  23.             if(!is_dir($created)){ 
  24.                 mkdir($created,$mode); 
  25.             } 
  26.         }else
  27.             if(!is_dir($value)){ 
  28.                 mkdir($value,$mode); 
  29.             } 
  30.             $created .= $value
  31.         } 
  32.     } 
  33. ?> 
  34. //代码应用实例 
  35. $path="abc/ff/ss/"
  36. mkdirs($path,$mode = 0777); 

Tags: php 创建多级目录

分享到: