计算机文件按分层顺序存储在本地存储设备(称为驱动器)中,其中目录包含一个或多个文件以及子目录。在操作系统 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\mydir
.
..
a.txt
b.txt
rmdir() 函数
rmdir() 函数删除其路径作为参数给出的特定目录。需要删除的目录必须为空。
$dir = "c:/newdir/";
rmdir($dir) or die("目录不存在或不是空的");