码迷,mamicode.com
首页 > 其他好文 > 详细

用mkdir()创建多层目录

时间:2015-04-11 19:32:42      阅读:147      评论:0      收藏:0      [点我收藏+]

标签:mkdir   no such file or dire   php递归创建目录   

使用mkdir()函数直接创建目录时,只能一层一层目录的依次创建,如果父级目录不存在,使用mkdir()会报错:mkdir(): No such file or directory

所以最好自己封装函数来递归创建层级目录:


基本思路:从下向上层级递归操作:

步骤一,判断底层目录是否存在,存在时不操作直接返回true,否则进入第二步骤

步骤二,判断父级目录是否存在,不存在时一直递归本函数操作父级目录(获取返回值如果为true代表父级目录已存在或者已经创建成功,可接着创建当前目录),存在就创建当前目录(创建成功时返回true,失败时返回false)


function createDir($path){
	if(!is_dir($path)){//要创建的当前目录不存在时
		if(!createDir(dirname($path))){
		//递归确认父级及以上层级目录存在或创建父级及以上层级目录,如果出现异常返回false
			return false;
		}
		
		if(mkdir($path,0777)){//通过上面的递归已经确认父级目录存在了,可以创建当前目录
			file_put_contents($path."/index.html","");//创建目录成功时添加index文件防止匿名访问网站目录
		}else{
			return false;//创建目录出现异常时,返回false
		}		
	}	
	return true;//当前目录存在了返回true
}

类似思路的另外一种简单写法:

function createDir($path){
	if(!file_exits($path)){
		createDir(dirname($path));
		mkdir($path,0777);
		file_put_contents($path."/index.html","");
	}
}






用mkdir()创建多层目录

标签:mkdir   no such file or dire   php递归创建目录   

原文地址:http://blog.csdn.net/jo_andy/article/details/44983681

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!