PHP mkdir函数介绍
mkdir函数用于新建目录,
语法:
bool mkdir ( string $pathname [,int $mode = 0777 [,bool $recursive = false [,resource $context ]]] )
尝试新建一个由 pathname 指定的目录。
参数:
pathname 目录的路径。
mode 默认的 mode 是 0777,意味着最大可能的访问权。有关 mode 的更多信息请阅读 chmod()。
注意:mode 在 Windows 下被忽略。
返回值:
成功时返回 TRUE, 或者在失败时返回 FALSE。
mkdir函数实例
使用mkdir函数创建目录并指定目录访问权限:
mkdir( "testdir",0777 ); // global read/write/execute permissions
mkdir( "testdir",0755 ); // world and group: read/execute only
// owner: read/write/execute
mkdir('/tmp/apples',0777) or die($PHP_errormsg);
?>
利用mkdir创建多级目录
mkdir($path,0777,true);
第一个参数:必须,代表要创建的多级目录的路径;
第二个参数:设定目录的权限,默认是 0777,意味着最大可能的访问权;
第三个参数:true表示允许创建多级目录。
header("Content-type:text/html;charset=utf-8");
//要创建的多级目录
//判断目录存在否,存在给出提示,不存在则创建目录
if (is_dir($path)){
echo "对不起!目录 " . $path . " 已经存在!";
}else{
//第三个参数是“true”表示能创建多级目录,iconv防止中文目录乱码
$res=mkdir(iconv("UTF-8","GBK",$path),true);
if ($res){
echo "目录 $path 创建成功";
}else{
echo "目录 $path 创建失败";
}
}
?>
PHP中mkdir()函数的权限问题
使用以下PHP代码创建了一个目录,期望目录的权限是0777,实际结果是0755
mkdir('./aa/',0777)
分析与测试结果告诉我们:
mkdir()函数指定的目录权限只能小于等于系统umask设定的默认权限。
chmod()函数不受系统umask影响,可以设置比系统默认权限大的权限。
系统的mkdir命令可以设置大于默认值的权限。
因此,PHP若要创建一个有读写权限的目录,最好使用以下代码,不要直接使用mkdir函数指定权限,以避免系统umask的影响
mkdir('./xw/');
chmod('./xw/',0777);