用mkdir()创建多层目录

使用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_exists($path)){
		createDir(dirname($path));
		mkdir($path,0777);
		file_put_contents($path."/index.html","");
	}
}

 

 

 

 

 


 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值