php中mkdir函数递归创建目录(文件夹)
在php中mkdir函数是创建目录它自身是不可以递归创建目录了,我们需要遍历进行目录然后调用mkdir即可,下面来看一下操作方法,实例代码如下:
<?php /** * Makes directory and returns BOOL(TRUE) if exists OR made. * * @param $path Path name * @return bool */ function rmkdir( $path , $mode = 0755) { $path = rtrim(preg_replace( array ( "/\\/" , "//{2,}/" ), "/" , $path ), "/" ); $e = explode ( "/" , ltrim( $path , "/" )); if ( substr ( $path , 0, 1) == "/" ) { $e [0] = "/" . $e [0]; } $c = count ( $e ); $cp = $e [0]; for ( $i = 1; $i < $c ; $i ++) { if (! is_dir ( $cp ) && !@ mkdir ( $cp , $mode )) { return false; } $cp .= "/" . $e [ $i ]; } return @ mkdir ( $path , $mode ); } ?>实例2代码如下:
<?php function mkdir_r( $dirName , $rights =0777){ $dirs = explode ( '/' , $dirName ); $dir = '' ; foreach ( $dirs as $part ) { $dir .= $part . '/' ; if (! is_dir ( $dir ) && strlen ( $dir )>0) mkdir ( $dir , $rights ); } } ?>实例3代码如下:
function mkdirs( $dir ) { if (! is_dir ( $dir )) { if (!mkdirs(dirname( $dir ))){ return false; } if (! mkdir ( $dir ,0777)){ return false; } } return true; } function rmdirs( $dir ) { $d = dir( $dir ); while (false !== ( $child = $d ->read())){ if ( $child != '.' && $child != '..' ){ if ( is_dir ( $dir . '/' . $child )) rmdirs( $dir . '/' . $child ); else unlink( $dir . '/' . $child ); } } $d ->close(); rmdir ( $dir ); }三个创建目录的函数都有自己的优点,这里我也没有一个个测试了,只使用了第二个感觉非常的不错。
查看更多关于php中mkdir函数递归创建目录(文件夹) - php文件操作的详细内容...
声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://www.haodehen.cn/did27887