php mkdir创建目录使用实例和需要注意的地方

时间:2016-09-28
php mkdir函数用于创建或新建目录,创建目录的默认权限为最大可能的访问权,即0777,如果目录创建成功返回TRUE, 否则返回 FALSE,本文章向大家介绍mkdir函数的使用实例以及在使用过程中出现的问题,需要的朋友可以参考一下。

php mkdir函数介绍

mkdir函数用于新建目录,

语法:

bool mkdir ( string $pathname [, int $mode = 0777 [, bool $recursive = false [, resource $context ]]] )

尝试新建一个由 pathname 指定的目录。 

参数:

  1. pathname 目录的路径。 
  2. 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表示允许创建多级目录。

举例代码(支持创建中文目录):

<?php
header("Content-type:text/html;charset=utf-8");
//要创建的多级目录
$path="dai/php/php学习";
//判断目录存在否,存在给出提示,不存在则创建目录
if (is_dir($path)){  
   echo "对不起!目录 " . $path . " 已经存在!";
}else{
   //第三个参数是“true”表示能创建多级目录,iconv防止中文目录乱码
   $res=mkdir(iconv("UTF-8", "GBK", $path),0777,true); 
   if ($res){
      echo "目录 $path 创建成功";
   }else{
      echo "目录 $path 创建失败";
   }
}
?>

 

php中mkdir()函数的权限问题

使用以下php代码创建了一个目录,期望目录的权限是0777,实际结果是0755

mkdir('./aa/',0777)

分析与测试结果告诉我们:

  1. mkdir()函数指定的目录权限只能小于等于系统umask设定的默认权限。
  2. chmod()函数不受系统umask影响,可以设置比系统默认权限大的权限。
  3. 系统的mkdir命令可以设置大于默认值的权限。

因此,php若要创建一个有读写权限的目录,最好使用以下代码,不要直接使用mkdir函数指定权限,以避免系统umask的影响

mkdir('./xw/');
chmod('./xw/',0777);

上一页 下一页

原文地址:http://www.manongjc.com/article/1491.html