用取消链接抑制 "No such file or directory"?
Suppress "No such file or directory" with unlink?
我正在使用 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 和取消链接调用,但它似乎介于 file_exists 调用和取消链接之间,一些其他进程删除了文件?!
谢谢!
您可以暂时禁用错误报告,无需强制取消警告。
Note: When you try to delete a directory, you must delete all files recursively inside, first.
if ($delete === TRUE)
{
$file_tmp = $file->getRealPath();
clearstatcache(TRUE, $file_tmp);
if (file_exists($file_tmp))
{
// store current error reporting level
$level = error_reporting();
// turn completely off
error_reporting(0);
// unlink and store state
$state = unlink($file_tmp);
// restore error reporting level
error_reporting($level);
// return unlink state
return $state;
}
return FALSE;
}
我正在使用 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 和取消链接调用,但它似乎介于 file_exists 调用和取消链接之间,一些其他进程删除了文件?!
谢谢!
您可以暂时禁用错误报告,无需强制取消警告。
Note: When you try to delete a directory, you must delete all files recursively inside, first.
if ($delete === TRUE)
{
$file_tmp = $file->getRealPath();
clearstatcache(TRUE, $file_tmp);
if (file_exists($file_tmp))
{
// store current error reporting level
$level = error_reporting();
// turn completely off
error_reporting(0);
// unlink and store state
$state = unlink($file_tmp);
// restore error reporting level
error_reporting($level);
// return unlink state
return $state;
}
return FALSE;
}