PHP - 创建目录
计算机文件以层次结构存储在本地存储设备(称为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 资源管理器将显示如下嵌套目录结构 −
chdir() 函数
PHP 中的 chdir() 函数对应于 Linux/Windows 中的 chdir 或 cd 命令。它会将当前目录更改为所需目录。
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