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 ?>