1.什么是多级目录
多级目录,就是在文件系统中,一个目录下还可以有一些目录。比如,在Windows系统中,D盘下可以有一个文件夹叫做work,而work文件夹下又可以有多个文件夹,比如doc、img、temp等,这是一个多级目录。
在web开发中也经常要用到多级目录,比如一个文章的链接可能就是:/blog/php/2020/01/01/article.html ,其中,blog目录下有php目录,php目录下有2020目录,2020目录下有01目录,01目录下有01目录,最后是article.html文件。
2.php创建多级目录的方法
php可以通过mkdir函数来创建目录,可以通过多次调用mkdir函数来创建多级目录,具体方法如下:
/**
* 创建多级目录
* @param string $dir 目录路径
* @param int $mode 目录权限,默认是0777
* @return bool
*/
function createMultiDirectory($dir, $mode = 0777)
{
if (is_dir($dir) || mkdir($dir, $mode, true)) {
return true; //如果已经存在,或者创建成功,则返回true
}
if (!createMultiDirectory(dirname($dir), $mode)) {
return false; //递归创建上级目录
}
return mkdir($dir, $mode); // 创建目录
}
该函数中,第一个参数$dir是目录路径,第二个参数$mode是目录的权限。如果目录创建成功,则返回true;如果创建失败,则返回false。
2.1 参数说明
以下是参数说明:
参数 | 说明 |
---|---|
dir | 目录路径 |
mode | 目录权限,默认是0777,若不设置,则取当前系统设置的默认值。 |
2.2 函数说明
该函数使用了递归的方式来创建多级目录。如果上级目录不存在,则先递归创建上级目录,再创建当前目录。
在函数中,首先判断当前目录是否存在,如果存在,或者创建当前目录成功,则返回true;否则,就递归创建上级目录,并且判断创建上级目录是否成功,如果成功,则创建当前目录。最后返回创建当前目录的结果。
2.3 代码示例
以下是一个示例,展示了如何使用该函数来创建多级目录:
$dir = '/home/user/work/blog/php/2020/01/01';
if (createMultiDirectory($dir)) {
echo '目录创建成功';
} else {
echo '目录创建失败';
}
在上面的代码中,如果创建成功,则输出“目录创建成功”,否则输出“目录创建失败”。