PHP怎么创建目录?

文章导读
Previous Quiz Next 计算机文件以层次结构存储在本地存储设备(称为drive)中,其中一个目录包含一个或多个文件以及子目录。操作系统 Windows、Linux 等中定义的相应 DOS 命令用于创建和管理目录。
📋 目录
  1. mkdir() 函数
  2. chdir() 函数
  3. getcwd() 函数
  4. rmdir() 函数
A A

PHP - 创建目录



Previous
Quiz
Next

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

PHP 提供了目录管理函数,用于创建目录、更改当前目录以及删除特定目录。

本章讨论 PHP 中以下目录函数的使用 −

  • mkdir() 函数

  • chdir() 函数

  • getcwd() 函数

  • rmdir() 函数

现在让我们在下面的部分逐一讨论这些函数 −

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 OS 上工作时,$permissions 参数将被忽略。

  • $recursive − 如果为 true,则会同时创建指定目录的任何父目录,并使用相同的权限。

  • $context − 此可选参数是 stream resource。

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

示例

以下是 mkdir() 函数的一些示例。

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

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

我们可以提供包含要创建目录的绝对路径的字符串参数。

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

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

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

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

Create Directory

chdir() 函数

PHP 中的 chdir() 函数对应于 Linux/Windows 中的 chdircd 命令。它会将当前目录更改为所需目录。

chdir(string $directory): bool

此函数的字符串参数是要更改到的目录的绝对路径或相对路径。它返回 true 或 false。

getcwd() 函数

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

示例

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

<?php
   echo "current directory: ". getcwd() . PHP_EOL;
   $dir = "./mydir";
   chdir($dir);
   echo "current directory changed to: ". 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;
?>

它将产生以下输出

current directory: C:\xampp\php
current directory changed to: C:\xampp\php\mydir
.
..
a.txt
b.txt

rmdir() 函数

rmdir() 函数会删除指定路径作为参数给定的某个目录。要删除的目录必须为空。

$dir = "c:/newdir/";
rmdir($dir) or die("The directory is not present or not empty");

注意 - 有关更多目录相关函数,请查看 Directory Functions