标签: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 no such file or dire php递归创建目录
原文地址:http://blog.csdn.net/jo_andy/article/details/44983681