网页开发时,很多时候都会遇到生成目录树的问题,系统自带的mkdir仅仅只能生成单个目录,当面对“abc/def/ghi/jkl/”这样的路径时,就没有办法了。这时候,可以利用一个简单的递归,同时调用PHP自带函数dirname,就可以很方便的生成目录树
<?php
function mkdirs($path , $mode = 0755 ){
if(!is_dir($path)){
mkdirs(dirname($path),$mode);
mkdir($path,$mode);
}
return true;
}
这样就比较方便的生成一个目录树了,该函数主要用于:1、生成缓存目录,2、生成静态文件目录,3、生成上传文件目录。
其它地方用的并不是很多

评论 (7)
可以使用explode('/') 折分以后循环输出,在使用mkdir
如果是win 的环境,在执行一个 \\ 替换为 /
当然,好象试过,在linux下面如果是0600的时候,是不能递归生成的(前提是,我不记得我的apache是用哪个用户的了,可能是www-data用户吧?反正利用系统自带的没有生成成功)
具体环境已经无法重现。只能安慰一下自己可能是RP不够好吧。
mkdir($path,$mode,true);
http://www.haixiait.com/article.asp?id=196
谢谢你。