PHP中delete()和unlink()的区别是什么?

18

当我开始搜索“如何在PHP中删除文件”时,几乎到处都给出了“unlink()”的解决方案。

但是在W3school上,我遇到了另一个名为delete()的函数。这是那个链接 delete()函数w3schools

然后我开始搜索delete(),但没有得到太多答案。

这是类似于我在stackoverflow上提出的问题... 在Unix上unlink()和delete()之间的区别

我真的想知道这两个功能之间的差异和相似之处...为什么我们使用unlink()而不是delete()。


5
请查阅手册 http://php.net/manual/en/function.delete.php - "这是一个虚拟手册条目,为了满足那些在错误位置寻找unlink()unset()的人。" - Funk Forty Niner
5
不要使用W3Schools。 - dimo414
7个回答

16

delete()函数并不存在,正如php文档所述。

这是一个虚假手册条目,旨在满足那些寻找错误的unlink()或unset()函数的人们。

创建了一个虚假手册条目以捕捉任何认为存在但实际上并不存在的函数,并引导他们找到正确的函数

http://php.net/manual/en/function.delete.php


5

PHP是一种类似于C语言的语言 - 语法相似,PHP中的大多数函数来自于C标准库(和POSIX)。

"unlink"是一个C函数。 (最初是POSIX,但最近被ISO标准化为_unlink)

"delete"是一个CP/M命令,与"era" CP/M命令相同。

Unlink指底层UNIX命令unlink,它删除文件的符号或硬链接,不一定是文件本身。 只有当所有链接到文件的链接都被删除时,才会删除该文件。


3

2
在PHP中,delete()是一个虚假的手动输入项,旨在满足那些在错误位置寻找unlink()unset()的人。
“虚假条目”是一个“假”的条目或者在这种情况下,是一个命令不存在的条目,以便人们可以找到正确的命令。
更多详情请见:php.net-manual-function.delete

1

删除并不是 PHP 的核心函数,而 unlink 是 PHP 的核心函数。

<?php


print "Below examples clear the diff between unlink and delete";

/* There is file abc.txt in foo DIR */

/*
* Operation 1: Use delete function
* Operation 2: Use unlink function
*
*/

$path  = $_SERVER['DOCUMENT_ROOT'] ."/foo/abc.txt";

## Uncomment to print the path
//print "Path = ". $path;

## Uncomment to see what delete throws an output
//delete($path) or die("I have some problem here");

/* output: Here it will show ... delete is not a function */

unlink($path) or die("File is not deleted. Specify some valid path till file.");

1

1

参考资料:

删除了一个大文件,但是没有看到可用空间增加或磁盘使用量减少?正在使用UNIX或其他POSIX操作系统?

unlink() 不是关于删除文件,而是关于删除文件名。man页上说:“unlink - 删除名称及其所指向的可能是文件。”

大多数情况下,一个文件只有一个名称 - 删除它也将删除(释放,解除分配)文件的“主体”(有一个例外,请参见下面)。这是简单、通常的情况。

然而,一个文件可以有几个名称(请参见link()函数),在同一目录或不同目录中。所有名称都将引用文件主体并“保持其活动状态”,也就是说。只有当所有名称都被删除时,文件主体实际上才被释放。


还有从内存系统而非文件系统链接到文件的链接。当一个正在运行的进程打开一个文件时,会建立一个额外指向该文件的链接。即使所有文件系统链接都被删除,只要一个正在运行的进程仍然打开该文件,该文件仍然保留在磁盘上。这可_防止程序意外删除正在使用的文件_。这也意味着僵尸进程可以保留一大块文件空间,即使它的文件已被“删除”时。为了将块返回到空闲空间列表中,必须杀死该进程。 - Eliyahu Skoczylas

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接