【发布时间】:2020-03-27 20:46:35
【问题描述】:
我正在使用 Sentry 来监控网站上的错误。我有一段代码给我带来了麻烦,它来自一个旧的 Kohana(PHP 框架)模块。
给出这段代码(我编辑过的):
if ($delete === TRUE)
{
$file_tmp = $file->getRealPath();
clearstatcache(TRUE, $file_tmp);
if (file_exists($file_tmp))
{
return @unlink($file_tmp);
}
return FALSE;
}
我怎样才能让它不会在 Sentry 上触发这样的错误:
Warning: unlink(/var/www/my-hostname-files/application/cache/25/2530cfe0309c86c52f8dda53ca493f4cf72fdbd3.cache): No such file or directory
原始代码只是大 IF 和 unlink 调用,但似乎介于 file_exists 调用和 unlink 之间,其他进程删除了文件?!
谢谢!
【问题讨论】:
-
尝试检查非空
if($file_tmp !='') -
@AbhishekSharma 如果您看到发出的警告.. file_tmp 是否为空不是问题,它总是设置
-
警告说没有文件或目录,这意味着
$file_tmp未设置 -
远射... 注意:由于 PHP 的整数类型是有符号的,并且许多平台使用 32 位整数,因此对于大于 2GB 的文件,某些文件系统函数可能会返回意外结果。 manual