PHP 既没有 delete 关键字也没有 delete() 函数。相反,它提供 unlink() 函数,调用该函数时,会从文件系统中删除文件。它类似于 Unix/C 的 unlink 功能。
如果无法完成删除操作,PHP 将返回 false 并显示 E_WARNING 消息。
unlink(string $filename, ?resource $context = null): bool
unlink() 函数的强制字符串参数是引用要删除的文件的字符串。
例子
以下代码演示了 unlink() 函数的简单用法 -
<?php
$file = "my_file.txt";
if (unlink($file)) {
echo "文件已成功删除。";
} else {
echo "无法删除该文件。";
}
?>
删除指向文件的符号链接
unlink() 函数还可以删除指向文件的符号链接。但是,删除符号链接不会删除原始文件。符号链接是现有文件的快捷方式。
在 Windows 中,使用管理员权限打开命令提示符,并使用带有 /h 开关的 mlink 命令创建指向文件的符号链接。(/j 开关用于指向文件夹的符号链接)
Hardlink created for hellolink.lnk <<===>> hello.txt
在 Ubuntu Linux 中,要创建指向文件的符号链接,您可以使用以下命令 -
要创建指向目录的符号链接,请使用以下命令 -
在 PHP 中,还有一个 symlink() 函数。
symlink(string $target, string $link): bool
例子
使用以下代码创建符号链接 -
<?php
$target = 'hello.txt';
$link = 'hellolink.lnk';
symlink($target, $link);
echo readlink($link);
?>
现在删除上面创建的符号链接 -
如果检查当前工作目录,符号链接将被删除,原始文件保持不变。
PHP 重命名文件
您可以借助操作系统控制台中的相应命令更改现有文件的名称。例如,Linux 终端中的“mv 命令”或 Windows 命令提示符中的“rename 命令”可帮助您更改文件名。
但是,要以编程方式重命名文件,PHP 的内置库包括一个 rename() 函数。
这是 rename() 函数的语法 -
rename(string $from, string $to, ?resource $context = null): bool
$from 和 $to 字符串分别是文件 existing 和 new 的名称。rename() 函数尝试将 $from 重命名为 $to,并在必要时在目录之间移动它。
如果要重命名文件并且 $to 已存在,则它将被覆盖。如果要重命名目录并且 $to 目录存在,则此函数将发出警告。
要将 “hello.txt” 的名称更改为 “test.txt” -
<?php
rename("hello.txt", "test.txt");
?>
您也可以采用一些间接方法来重命名文件。复制现有文件并删除原始文件。这也会将 “hello.txt” 重命名为 “test.txt” −
unlink("hello.txt");