PHP5 下创建目录函数 mkdir 增加了一个新的参数 recursive ,通过设置 recursive 为 true 可以实现递归创建目录的目的,这个功能在我们不能确保上级目录存在的情况下非常有用,本文介绍了在 PHP4 下实现这一功能的方法。
PHP:
1
<?
php
2 // 说明:PHP4 下递归 (recursive)创建目录(mkdir)的方法
3 // 整理:http://www.codebit.cn
4 function mkdirs( $dir , $mode = 0777 )
5 {
6 if ( is_dir ( $dir ) || @ mkdir ( $dir , $mode )) return TRUE ;
7 if ( ! mkdirs( dirname ( $dir ) , $mode )) return FALSE ;
8 return @ mkdir ( $dir , $mode );
9 }
10 ?>
2 // 说明:PHP4 下递归 (recursive)创建目录(mkdir)的方法
3 // 整理:http://www.codebit.cn
4 function mkdirs( $dir , $mode = 0777 )
5 {
6 if ( is_dir ( $dir ) || @ mkdir ( $dir , $mode )) return TRUE ;
7 if ( ! mkdirs( dirname ( $dir ) , $mode )) return FALSE ;
8 return @ mkdir ( $dir , $mode );
9 }
10 ?>
函数有个可选参数 $mode , 即创建的文件夹的权限,默认为 0777。
此方法由 millken 在 【喜悦国际村】论坛中发布,是他从国外的一个缓存系统(PHP-Cache-Kit)中摘录,代码极其精练:
PHP:
1
<?
php
2 // 说明:PHP4 下递归 (recursive)创建目录(mkdir)的方法
3 // 整理:CodeBit.cn ( http://www.codebit.cn/ )
4 // 来源:http://acme-web-design.info/php-cache-kit.htm
5 function forceDirectory( $dir ) // force directory structure
6 {
7 return is_dir ( $dir ) or (forceDirectory( dirname ( $dir )) and mkdir ( $dir , 0777 ));
8 }
9 // USAGE:forceDirectory('/a/b/c/d/f');
10 ?>
2 // 说明:PHP4 下递归 (recursive)创建目录(mkdir)的方法
3 // 整理:CodeBit.cn ( http://www.codebit.cn/ )
4 // 来源:http://acme-web-design.info/php-cache-kit.htm
5 function forceDirectory( $dir ) // force directory structure
6 {
7 return is_dir ( $dir ) or (forceDirectory( dirname ( $dir )) and mkdir ( $dir , 0777 ));
8 }
9 // USAGE:forceDirectory('/a/b/c/d/f');
10 ?>