PHP创建多级文件夹

php函数中自带mkdir就可以创建文件夹,但是只能创建一级目录。如果创建aa/bb/cc多级目录,是不支持的。

第一种PHP创建文件夹(用mkdirs来产生多级父级)

function mkdirs($dir, $mode = 0777) {
	if (! is_dir ( $dir )) {
		if (! mkdirs ( dirname ( $dir ) )) {
			return false;
		}
		if (! mkdir ( $dir, $mode )) {
			return false;
		}
	}
	return true;
}

基本思路:1.判断文件夹是否存在

      2.不存在时递归查询其父目录是否存在。

        3.逐级创建文件夹

dirname函数可以查找传入路径的父目录

方法2

function create_folders($dir) {
	return is_dir ( $dir ) or (create_folders ( dirname ( $dir ) ) and mkdir ( $dir, 0777 ));
}
原理相同,注意选择性语法:可以直接用or,and实现

第二种php创建文件夹(用新的参数来产生多级父级)
用PHP5中自带的mkdir 中的一个新的参数 recursive ,通过设置 recursive 为 true 可以实现递归创建目录的目的,但是对PHP4就不行了。

mkdir("aa/bb/cc",0777,true);

事实证明还是升级php版本较好,对于许多通用方法都进行了实现。

原文地址:https://www.cnblogs.com/y0umer/p/3838868.html