开发模式与产品模式下的PHP报错处置详解
在开发php程序时,我们但愿碰到php报错,可以第一时间展现给我们,以便于调试。当程序开发完成,成为正式产品时,我们但愿将没有猜测到的报错信息记载到错误日志中,而不是将这些报错信息展现给会员,由于会员极有大概利用这些显露出足本途径、数据库信息或其他的报错信息停止一些毁坏性的黑客动作。
PHP 的错误处置
php足本在施行历程中碰到错误将以报错的情势处置,有些错误在报错之后会终止足本连续施行,而有些不会,详细请参阅手册。
php的报错处置方式按照以下配置选项停止,这些配置可以在代码中声明以设定,也可以在php.ini文件中设定。假如不需要经常改动这些配置,还是倡议在php.ini文件中设定,以使你的代码更清新简约。
# 可否打印错误信息到阅读器/命令行界面 # 开发模式下倡议开启,产品模式下热烈倡议关闭 ini_set('display_errors', 'On'); # 可否记载错误信息到日志 # 开发模式和产品模式下都倡议开启 ini_set('log_errors', 'On'); # 指定错误信息日志文件,若开启了 log_errors 选项,记得指定日志文件位置 # 要确保施行 php 足本的系统会员具有该文件的 write 权限,不然日志没法被写入 ini_set('error_log', '/usr/local/php/errors.log'); # 该选项用以设定错误报告的等级 # 等同于 error_reporting(E_ALL) # 不管开发模式还是产品模式下都倡议开到E_ALL(报告所有的错误信息) # 产品模式下也需要设定此选项,由于关闭了 display_errors 并开启了 log_errors # 所以阅读器/命令行界面不会因此显露报错信息 ini_set('error_reporting', E_ALL);
除此之外,php 还给开发者供给了在代码中将自定义的错误信息记载到错误日志文件的内置函数:
bool error_log ( string $message [, int $message_type = 0 [, string $destination [, string $extra_headers ]]] )
必选参数是 message ,调取此函数会将 message 写入 php.ini 中定义的 error_log 文件中。
会员自定义的错误处置
别的,会员可以通过函数:
mixed set_error_handler ( callable $error_handler [, int $error_types = E_ALL | E_STRICT ] )
以自定义的方式来处置足本运转时显现的错误,假如会员注册了 error_handler 并指定了 error_types ,那么当发生这些 error_types 的错误时,将绕过 php的标准错误处置程序
(也就是说既不会输出错误信息,也不会记载错误信息日志),而是施行 error_handler 中的处置程序。
该函数的具体用途请参阅手册(https://www.php.net/manual/zh/function.set-error-handler.php)
相关文章教程引荐:php教程
以上就是开发模式与产品模式下的PHP报错处置详解的具体内容,更多请关注百分百源码网其它相关文章!