unlink() 不适用于绝对路径

unlink() doesn't work with absolute path

我正在研究一种使用 unlink() 删除图片的方法。但是我找不到使用绝对路径使其工作的方法。

这是我的代码:

$img = $_SERVER['DOCUMENT_ROOT'].'/i/koala.png';
unlink($img);

错误:

Warning: unlink(/var/www/html/i/koala.png): No such file or directory in /var/www/html/king/test.php on line 15

有什么帮助吗?

当您将各种字符串拼凑成一条路径时,您应该使用 realpath 来验证它并转换任何相关片段,例如 /../.

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

$path = $_SERVER['DOCUMENT_ROOT'].'/i/koala.png';
$img = realpath($path);

$img 要么是假的,要么是一个有效路径的字符串!

立即查看

$filename = '/var/www/html/i/koala.png';

if(file_exists($filename))
{
  chmod($filename, 777);
  unlink($filename);
  echo "file has deleted";
}
else
{
 echo "file not exists";
}