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

php中mkdir函数递归创建目录(文件夹)

发布:smiling 来源: PHP粉丝网  添加日期:2014-01-10 14:22:54 浏览: 评论:0 

在php中mkdir函数是创建目录它自身是不可以递归创建目录了,我们需要遍历进行目录然后调用mkdir即可,下面来看一下操作方法,实例代码如下:

  1. <?php 
  2. /** 
  3.  * Makes directory and returns BOOL(TRUE) if exists OR made. 
  4.  * 
  5.  * @param  $path Path name 
  6.  * @return bool 
  7.  */ 
  8. function rmkdir($path$mode = 0755) { 
  9.     $path = rtrim(preg_replace(array("/\\/""//{2,}/"), "/"$path), "/"); 
  10.     $e = explode("/", ltrim($path"/")); 
  11.     if(substr($path, 0, 1) == "/") { 
  12.         $e[0] = "/".$e[0]; 
  13.     } 
  14.     $c = count($e); 
  15.     $cp = $e[0]; 
  16.     for($i = 1; $i < $c$i++) { 
  17.         if(!is_dir($cp) && !@mkdir($cp$mode)) { 
  18.             return false; 
  19.         } 
  20.         $cp .= "/".$e[$i]; 
  21.     } 
  22.     return @mkdir($path$mode); 
  23. ?> 

实例2代码如下:

  1. <?php 
  2. function mkdir_r($dirName$rights=0777){ 
  3.     $dirs = explode('/'$dirName); 
  4.     $dir=''
  5.     foreach ($dirs as $part) { 
  6.         $dir.=$part.'/'
  7.         if (!is_dir($dir) && strlen($dir)>0) 
  8.             mkdir($dir$rights); 
  9.     } 
  10. ?> 

实例3代码如下:

  1. function mkdirs($dir
  2.     { 
  3.         if(!is_dir($dir)) 
  4.         { 
  5.             if(!mkdirs(dirname($dir))){ 
  6.                 return false; 
  7.             } 
  8.             if(!mkdir($dir,0777)){ 
  9.                 return false; 
  10.             } 
  11.         } 
  12.         return true; 
  13.     } 
  14.     function rmdirs($dir
  15.     { 
  16.         $d = dir($dir); 
  17.         while (false !== ($child = $d->read())){ 
  18.             if($child != '.' && $child != '..'){ 
  19.                 if(is_dir($dir.'/'.$child)) 
  20.                 rmdirs($dir.'/'.$child); 
  21.                 else unlink($dir.'/'.$child); 
  22.             } 
  23.         } 
  24.         $d->close(); 
  25.         rmdir($dir); 
  26.     } 

三个创建目录的函数都有自己的优点,这里我也没有一个个测试了,只使用了第二个感觉非常的不错。

Tags: mkdir 函数 递归 创建目录

分享到: