PHP mkdir 用于创建目录,需指定路径、权限和递归标志;默认不创建父目录,启用 recursive 才支持多级;应检查目录是否存在并验证返回值,注意权限安全与路径过滤。

PHP mkdir 是一个用于在服务器上创建新目录的内置函数。
核心作用是新建文件夹
它接收路径作为输入,尝试在指定位置生成一个空目录。如果路径中包含多级结构(比如 uploads/2024/11),默认只创建最后一层;若父目录不存在,调用会失败。
必须注意三个关键参数
-
path:要创建的目录完整路径,可以是相对路径(如
'cache')或绝对路径(如'/var/www/html/temp') -
mode:权限设置,八进制数,常见值为
0755(所有者可读写执行,组和其他人仅可读执行);Windows 下该参数被忽略 -
recursive:布尔值,设为
true才能自动创建缺失的上级目录,例如mkdir('a/b/c', 0755, true)
使用前建议做两件事
- 用
is_dir($path)或file_exists($path)检查目标是否已存在,避免重复创建报错 - 检查返回值:
if (!mkdir($path, 0755, true)) { /* 处理失败 */ },失败时可用error_get_last()获取具体原因
权限和安全提醒
生产环境不推荐用 0777,容易引发安全风险;实际生效权限还受系统 umask 影响;涉及用户输入的路径需过滤 ../ 等遍历字符,防止越权操作。



















