PHP mkdir创建文件夹实现方法解析
1.引言
在Web开发领域里,无论是桌面网站还是移动APP,都离不开文件的操作,文件的管理与操作也是开发工作中常见的任务之一。PHP的文件处理能力十分强大,可以很方便地创建、读取、写入或修改文件,以及删除不再需要的文件。本文将介绍PHP中如何创建文件夹。
2.mkdir函数的语法格式及说明
在PHP中,使用mkdir()函数可以创建文件夹。该函数的完整语法格式如下:
mkdir(string $pathname, int $mode = 0777, bool $recursive = false, resource $context = null): bool
该函数含有四个参数,其中$pathname是必须的,其它参数都是可选的。
参数说明如下:
- $pathname:需要创建的目录路径。如:“/dir1/dir2”。
- $mode:可选,新目录的权限,
- $recursive:可选,如果目录已存在,此参数为false则函数返回false,否则递归地创建目录。
- $context:可选,规定文件或目录的上下文。该参数通常用于更细粒度的操作。
3.mkdir函数的返回值
当函数成功地创建新目录时,将返回true,否则返回false。
4.几个实例
4.1 普通创建
$dirname = "/path/to/dirname";
if (!file_exists($dirname)) {
mkdir($dirname, 0777, true);
}
该代码片段可以创建路径为 $dirname 的目录,如果已存在则不创建,否则会创建一个权限为0777的目录。第三个参数为true,表示递归创建目录。
4.2 使用相对路径
在上述实例中,$dirname是一个绝对路径(/path/to/dirname)。也可以使用相对路径(如:dir1/dir2)。
$dirname = "dir1/dir2";
if (!file_exists($dirname)) {
mkdir($dirname, 0777, true);
}
4.3 使用文件上下文
$context参数用于更细粒度的权限控制,也可以用于锁定操作、安全区域等。文件上下文必须是通过stream_context_create()创建的。
$dirname = "/path/to/dirname";
$context = stream_context_create(array('dir1/dir2' => array('mode' => 0777)));
mkdir($dirname, 0777, true, $context);
4.4 按照日期创建目录
有时,需要按照日期格式来创建目录。例如, 创建一个每天只有一次使用的日志目录。
$dirname = "/path/to/logs" . date("ymd");
if (!file_exists($dirname)) {
mkdir($dirname, 0777, true);
}
4.5 错误处理
如果创建目录失败,则返回false。下面的例子展示了错误处理方法:
$dirname = "/path/to/logs/";
if (!file_exists($dirname)) {
if(!mkdir($dirname, 0777, true)){
echo "创建失败!";
}
}
else{
echo "目录已经存在!";
}
5.总结
PHP提供了mkdir函数,用于创建新的目录。在使用该函数时,需要传递目录路径及访问权限,如果目录不存在,还需要设置$recursive参数为true,表示递归创建新的目录。在按照日期或其它规则创建目录时,可以将相关变量设置在目录名称上,以保持每个目录名称的唯一性。