PHP警告,即使在检查文件存在时也会取消链接

PHP警告,即使在检查文件存在时也会取消链接,php,opencart,unlink,Php,Opencart,Unlink,我有以下代码: if (file_exists($file) && is_file($file)) { unlink($file); } 这给了我一个警告: PHP Warning: unlink(/var/www/korea-cosmetics/data/www/korea-cosmetics.ru/system/cache/cache.category.seopath.1547731925): No such file or directory in /var/w

我有以下代码:

if (file_exists($file) && is_file($file)) {
    unlink($file);
}
这给了我一个警告:

PHP Warning:  unlink(/var/www/korea-cosmetics/data/www/korea-cosmetics.ru/system/cache/cache.category.seopath.1547731925): No such file or directory in /var/www/korea-cosmetics/data/www/korea-cosmetics.ru/system/library/cache.php on line 60

如何修复它?

文件存在
并且
是文件
可以接受相对路径,但是
取消链接
不接受。因此,我们必须将相对路径转换为绝对路径

unlink(realpath($file)); // this should suffice
相对路径如下所示:
。/../path/to/file.php

绝对路径看起来像:
/path/to/file.php


希望这会有所帮助。

您确定您或web服务器帐户有权删除它吗?您确定,因为它是一个缓存文件,系统尚未将其删除。由于它是一个缓存文件,我希望应该要求缓存系统将其删除,否则缓存将变得一团糟,并给您带来其他问题。这听起来像是系统在保护自己免受您的攻击:)它是系统的一部分,我不会自己删除这些文件。问题在于这些从一开始就存在的警告。我只是不明白为什么文件_存在,而is_文件却让它进来。这可能是所有权问题吗?您确定这是您的代码错误吗?注释您的代码并检查错误是否存在或消失。因为通常这个错误在opencart中很常见,我认为这是opencart错误。我只是不喜欢我的日志文件被污染,所以我正在尝试修复它。谢谢你,但它没有(@Grin AFAIK,这是
file\u存在的唯一原因
is\u文件
将返回true,但
取消链接
仍然不起作用。如果你发现其他问题,请告诉我。