如何在 PHP 中屏蔽警告和错误信息 ?
PHP 是一种健壮的服务器端脚本语言,广泛用于 web 开发。开发过程的一个重要部分是处理和调试错误,错误信息可以提供代码中存在的问题的线索。尽管它们很有用,但直接在网页上显示错误可能会导致不专业的用户体验,在最坏的情况下,甚至可能将敏感信息暴露给最终用户。因此,学习如何控制和删除这些错误和警告消息至关重要。
PHP 错误报告级别
了解 PHP 中可能发生的错误类型是很重要的,PHP 错误报告级别可分为:
- E_ERROR : 无法恢复的致命运行时错误。脚本执行停止。
- E_WARNING : 运行时警告,不会停止脚本的执行。
- E_PARSE : 编译时解析错误。
- E_NOTICE : 运行时通知,指示可能是错误的内容。
- E_ALL : 所有错误和警告 (包括E_STRICT ,E_DEPRECATED )
调整错误报告级别
你可以在 PHP 中使用 error reporting() 函数来调整错误报告级别。通过传入不同的常量,您可以控制 PHP 应该报告的错误类型。例如:报告除通 E_NOTICE 以外的所有错误
error_reporting(E_ALL & ~E_NOTICE);
关闭所有错误报告
error_reporting(0);
但是请记住,使用 error_reporting(0); 并不能阻止错误的发生。它只是隐藏它们而不被显示。
控制错误显示
您可以使用 ini_set() 函数控制是否应该向用户显示错误,选项 display_errors 决定是否将错误打印到屏幕上。你可以用下面的代码关闭它。
ini_set('display_errors', 0);
此设置在不希望用户看到任何错误消息的生产环境中特别有用。
记录错误日志
虽然您不希望向用户显示错误,但您可能仍然希望知道错误何时发生。您可以将 log_errors 选项设置为 On,并为 error_log 选项提供文件路径,从而将错误记录到文件中。
ini_set('log_errors', 'On');
ini_set('error_log', '/path/to/error.log');
使用 Try / Catch
如果您怀疑代码可能会失败,并且想要优雅地处理这些失败,您可以使用 try / catch
try {
// Code that might fail
} catch (Exception $e) {
// Code to handle the error
// $e is the exception object, which contains information about the error
}
PHP 错误处理函数
PHP 还提供了几个用于错误处理函数:
- set_error_handler() : 设置一个用户函数来处理错误。
- trigger_error() : 创建用户级错误消息。
- error_get_last() : 获取有关最近发生的错误的信息。
- error_log() : 将错误消息发送到 web 服务器的错误日志或文件中。
您可以使用这些函数来定义自定义错误处理机制。
我的开源项目
评论已关闭