php递归创建目录

/**
 * 递归创建目录
 * @param  [string] $path [创建的目录]
 * @return [type]       [description]
 */
function mk_Dir($path){
	// 如果目录存在返回 ture
	if(is_dir($path)){
		return true;
	}
	// 如果上级目录存在 创建目录
	if(is_dir(dirname($path))){
		return mkdir($path);
	}
	// 递归 查找父目录
	mk_Dir(dirname($path));
	return mkdir($path);
}

 

function mk_Dir($path){
	// 目录存在返回 ture
	if(is_dir($path)){
		return true;
	}
	// 父目录存在 或 递归找到父目录,创建目录
	return is_dir(dirname($path)) || mk_Dir(dirname($path)) ? mkdir($path) : "false";
}

 

/**
 * 迭代创建目录(我理解的迭代就是从最小积累到最大的过程)
 * @param  [string] $path [创建目录名]
 * @return [type]       [description]
 */
function mk_dir($path){
	$arr = array();
	// 将目录分解存入数组
	while(!is_dir($path)){
		array_unshift($arr,$path); // 把元素 插入数组头部
		$path = dirname($path);
	}
	if(empty($arr)){
		return ture;
	}
	foreach($arr as $v){
		mkdir($v);
	}
}

 在php5 以后可以使用 mkdir第三个参数,递归创建目录 mkdir("目录名",0777,true);

function delDir($path){
	if(!is_dir($path)){
		return null;
	}
	$dh = opendir($path);
	while(($row = readdir($dh)) !== false){
		if($row == "." || $row == ".."){
			continue;
		}
		if(!is_dir($path . "/" . $row)){
			unlink($path . "/" . $row);
		}else{
			delDir($path . "/" . $row);
		}
	}
	closedir($dh);
	rmdir($path);
	return true; // 会在页面上输出1
}

 

posted @ 2015-01-10 20:26  诚人小李  阅读(1912)  评论(0编辑  收藏  举报