PHP – 创建目录


计算机文件按分层顺序存储在本地存储设备(称为驱动器)中,其中目录包含一个或多个文件以及子目录。在操作系统 Windows、Linux 等中定义的相应 DOS 命令用于创建和管理目录。

PHP 提供了创建目录、更改当前目录和删除某个目录的目录管理功能。

mkdir() 函数

mkdir() 函数创建一个新目录,其路径作为函数的参数之一给出


mkdir(
   string $directory,
   int $permissions = 0777,
   bool $recursive = false,
   ?resource $context = null
): bool

参数

参数 描述
$directory $directory 的第一个参数是必需的。它是一个字符串,其中包含要创建的新目录的绝对路径或相对路径。
$permissions 第二个参数 $permissions 是一个具有四个八进制数字的八进制数。第一个数字始终为零,第二个数字指定所有者的权限,第三个数字指定所有者的用户组的权限,第四个数字指定其他所有人的权限。

每个数字是每种权限类型的值之和 -

  • 1 = 执行权限
  • 2 = 写入权限
  • 4 = 读取权限

$permissions 参数的默认值为 0777,这意味着在创建目录时启用了 执行写入 和 读取 权限。

注意:在 Windows 操作系统上工作时,$permissions 参数将被忽略。

参数 描述
$recursive 如果为 true,则还将创建指定目录的任何父目录,并具有相同的权限。
$context 此可选参数是 stream 资源。

mkdir() 函数返回 true false,指示函数是否已成功执行。

例子

以下对 mkdir() 的调用在当前工作目录中创建一个子目录。点表示路径是相对的。


$dir = "./mydir/";
mkdir($dir);

我们可以给出 string 参数,其中包含要创建的目录的绝对路径。


$dir = "c:/newdir/";
mkdir($dir);

以下对 mkdir() 的调用包含当前目录中的嵌套目录结构,因为 $recursive 参数设置为 true


$dirs = "./dir1/dir2/dir3/";
mkdir($dirs, 0777, true);

Windows 资源管理器将显示嵌套目录结构,如下所示 -

启科普创建目录示例

chdir() 函数

PHP chdir() 函数对应于 Linux/Windows 的 chdir 或 cd 命令。它会导致根据需要更改当前目录。


 chdir(string $directory): bool

此函数的 string 参数是当前目录需要更改为的目录的绝对路径或相对路径,返回 true false

getcwd() 函数

getcwd() 函数工作方式类似于 Ubuntu Linux 中的 pwd 命令,并返回当前工作目录的路径。

例子

使用以下代码片段,PHP 显示更改当前工作目录之前和之后的当前工作目录。将在新的当前目录中创建几个文件。使用 scandir() 函数,将列出文件。


<?php
   echo "当前目录:". getcwd() . PHP_EOL;
   $dir = "./mydir";
   chdir($dir);
   echo "当前目录已更改为: ". getcwd() .PHP_EOL;

   $fp = fopen("a.txt", "w");
   fwrite($fp, "Hello World");
   fclose($fp);

   copy("a.txt", "b.txt");
   $dir = getcwd();
   foreach(scandir($dir) as $file)
   echo $file . PHP_EOL;
?>

将产生以下输出 -

当前目录:C:\xampp\php
当前目录已更改为: C:\xampp\php\mydir
.
..
a.txt
b.txt

rmdir() 函数

rmdir() 函数删除其路径作为参数给出的特定目录。需要删除的目录必须为空。


$dir = "c:/newdir/";
rmdir($dir) or die("目录不存在或不是空的");