当文件在根目录下时,取消链接PHP工作,而不是当文件在文件夹中时

当文件在根目录下时,取消链接PHP工作,而不是当文件在文件夹中时,php,unlink,Php,Unlink,这是一个非常简单的例子,我想用PHP删除服务器上的一个文件,我有: $myfile = 'theone.png'; unlink($myfile); 这段代码删除了文件,但是如果文件的路径是/images/theone.png,它不起作用,我尝试了images\theone.png,但没有成功 如果我尝试使用FTP连接,我会收到错误消息,说cURL不支持unlink函数。。。任何帮助都会很好 谢谢大家 那么: $root = realpath($_SERVER['DOCUMENT_ROOT']

这是一个非常简单的例子,我想用PHP删除服务器上的一个文件,我有:

$myfile = 'theone.png';
unlink($myfile);
这段代码删除了文件,但是如果文件的路径是/images/theone.png,它不起作用,我尝试了images\theone.png,但没有成功

如果我尝试使用FTP连接,我会收到错误消息,说cURL不支持unlink函数。。。任何帮助都会很好

谢谢大家

那么:

$root = realpath($_SERVER['DOCUMENT_ROOT']);
$myfile = '$root/images/theone.png';
unlink($myfile);
尽管据我所知,您尝试的方法应该有效,除非我遗漏了什么,或者您没有在此处包含可能会干扰取消链接的代码。

那么:

$root = realpath($_SERVER['DOCUMENT_ROOT']);
$myfile = '$root/images/theone.png';
unlink($myfile);

尽管据我所知,您尝试的方法应该可以工作,除非我遗漏了什么,或者您没有在此处包含可能会干扰取消链接的代码。

\uuuuuu DIR\uuuuu
-此神奇常量包含当前目录,以防文件与您的PHP脚本位于同一目录中,您可以使用:

unlink(_DIR__./$myfile”)

例如,如果文件位于PHP脚本上方的一个目录中,则可以使用:

取消链接(_DIR__./../../$myfile”)


如果目录具有正确的访问权限,它应该可以工作。

\uuuuu DIR\uuuuu
-此神奇常量包含当前目录,如果文件与PHP脚本位于同一目录中,您可以使用:

unlink(_DIR__./$myfile”)

例如,如果文件位于PHP脚本上方的一个目录中,则可以使用:

取消链接(_DIR__./../../$myfile”)



如果目录具有正确的访问权限,它应该可以工作。

您是否尝试过
/images/theone.png
images/theone.png
?您能否显示正在使用的结构和确切的您(只是一小部分)?您的图像路径肯定不正确。您是否尝试过取消链接(“/images/theone.png”)?什么是
回送substr(sprintf('%o',fileperms($myfile)),-4)打印?服务器上的URL路径和文件位置完全不同。而
/images/theone.png
中的前导
/
在URL中表示“相对于当前域”,在文件路径中,它表示“相对于服务器文件系统的根目录”,这几乎肯定不是您想要的(以及您甚至可能无法访问的目录)。您应该指定要删除的文件在磁盘上的实际位置,而不是相对路径。您是否尝试过
/images/theone.png
images/theone.png
?您能否显示正在使用的文件的结构和确切位置(只是一小部分)?您的图像路径肯定不正确。您是否尝试过取消链接(“/images/theone.png”)?什么是
回送substr(sprintf('%o',fileperms($myfile)),-4)打印?服务器上的URL路径和文件位置完全不同。而
/images/theone.png
中的前导
/
在URL中表示“相对于当前域”,在文件路径中,它表示“相对于服务器文件系统的根目录”,这几乎肯定不是您想要的(以及您甚至可能无法访问的目录)。您应该指定要删除的文件在磁盘上的实际位置,而不是相对路径,它将查找服务器的根目录。您的解决方案通过为要删除的文件提供正确的完整路径来解决这个问题。嗯……如果我没记错的话,PHP在将/放在文件路径开头时的工作方式与HTML不同。我不记得了,因为我通常总是以与我的答案类似的方式将根与路径一起使用。我尝试了realpath函数,但没有成功,添加$root也没有任何作用……是的,这就是全部问题——它代表服务器的根,即整个操作系统,而不是您的特定网站。如果您来自Windows/DOS背景,请考虑
C:\
。@Rik89:您确定在映像目录中设置了正确的权限吗?这是我唯一能想到的另一件事。我相信尝试的是
$myfile='/images/theone.jpg',它将查找服务器的根目录。您的解决方案通过为要删除的文件提供正确的完整路径来解决这个问题。嗯……如果我没记错的话,PHP在将/放在文件路径开头时的工作方式与HTML不同。我不记得了,因为我通常总是以与我的答案类似的方式将根与路径一起使用。我尝试了realpath函数,但没有成功,添加$root也没有任何作用……是的,这就是全部问题——它代表服务器的根,即整个操作系统,而不是您的特定网站。如果您来自Windows/DOS背景,请考虑
C:\
。@Rik89:您确定在映像目录中设置了正确的权限吗?这是我能想到的唯一其他事情。我不认为你在下面,我需要的是,我可以删除同一目录下的文件(不是我想这样做),我实际上想删除/images/thefile中的文件。png@Rik89不,你没有(如果你有,我会非常惊讶)。这就像删除
C:\images\thefile.png
——这不是您将要使用的文件路径。所以你想要的是构造一个相对于a)运行的PHP脚本(这个答案)或b)你的网站的“文档根”(Higaran的答案)的路径。我不认为你在下面,我需要的是,当文件在同一个目录中时,我可以删除它(不是我想这样做),我实际上想删除/images/thefile中的文件。png@Rik89不,你没有(如果你有,我会非常惊讶)。这就像删除
C:\images\thefile.png
——这不是您将要使用的文件路径。因此,您需要构造一个相对于a)runni的路径