php如果异常就忽略,php中的错误与异常处理(一)

1.配置指令:

(1).设置你想要的错误敏感击级别:

error_reporting指令确定报告的敏感级别。共有14个不同的级别,这些级别的任何组合都是有效的。下图为级别表:

0818b9ca8b590ca3270a3433284dd417.png

php6中,E_STRICT被集成到了E_ALL中,因此,当运行php6时,需要将error_reporting指令设置为E-ALL来查看这些可移植性信息。

(error_reporting指令使用~字符表示逻辑操作符NOT)

比如希望报告除用户导致的错误之外的错误:

error_reporting E_ALL & ~(E_USER_ERROR|E_USER_WARNING|E_USER_NOTICE)

(2).在浏览器上显示错误:

启用display_errors时,将显示满足error_reporting所定义规则的所有错误。

(3).显示启动错误:

启动display_startup_errors指令会显示php引擎初始化时所遇到的所有错误。于display_errors类似,应在测试时启用,网站投入运营后禁用。

(4).记录错误:

应当始终启用log_errors。这些日志语句记录的位置取决于error_log指令。

(5).表示日志文件:

错误可以发送给系统syslog,或者送往由管理员通过error_log指令制定的文件。如果此指令设置为syslog,在linux上错误语句将送往syslog,而在windows上错误将发送到事件日志。

syslog是基于UNIX的日志工具。windows事件日志实际上与UNIX的syslog相同。这些日志通常可以通过事件查看器来查看。

(6).设置日志行的最大长度:

log_errors_max_len指令设置每个日志的最大长度,以字节为单位。

(7).忽略重复的错误:

启用此指令将使php忽略在同一文件同一行上发生的重复的错误信息。

(8).忽略相同位置发生的错误:

启用此指令将使php忽略不同文件或同一文件不同行上发生的错误消息。

(9).在变量中存储最近发生的错误:

启用track_errors指令会使php变量$php_errormsg中存储最近发生的错误消息。一旦注册,就可以随心所欲的使用此变量数据。

2.错误日志:

要确保这个文本文件存放在文档根之外,以减少遭到攻击的可能性~

可以将error_log指令设置到操作系统的日志工具(syslog或者Event Viewer)中。这会导致php的错误信息写入操作系统的日志工具或者一个文本文件中。

(1).初始化php的日志工具:

define_syslog_variables()函数初始化一些常量,这些常量是使用openlog(),closelog(),syslog()函数时所必需的。

使用一下日志函数前必需先执行此函数。

(2).打开日志连接:

openlog()函数通过指定几个将在日志上下文使用的参数,为向系统系统日志插入消息做好准备。形式为:

int openlog(string ident,int option,int facility)

支持的参数:

ident:增加到每一项开始处的标识符,通常设置为程序名。

option:确定生成消息时使用哪些日志选项。日志选项表如下:

0818b9ca8b590ca3270a3433284dd417.png

facility:谷歌一下~

(3).关闭日志连接

int closelog(void)

(4).向日志目标发布消息:

syslog()函数负责向syslog发送一条定制消息。

你可能感兴趣的:(php如果异常就忽略)