You are here
PHP中如何捕获Warning、Notice等错误信息
星期五, 2017-11-03 12:22 — adminshiping1
PHP5中只是增加了对异常的处理,但是之前很多低版本的函数不会抛出异常,比如 iconv等,当遇到非法输入的时候,会出现: iconv(): Detected an incomplete multibyte character in input string 的错误信息,只能屏蔽,但却没有很好的方式来捕获这些错误事件,然后来进行处理。 翻阅了PHP的手册后发现了一个新函数,error_get_last(),大概就是取得程序中最后一个错误信息(包括Error、 Warning、Notice等所有的错误),这个是PHP 5.2以后出现的函数,通过这个函数,可以用下列代码来实现捕获错误事件的方式。 - function my_iconv($from, $to, $string, $line) {
- @trigger_error('hi', E_USER_NOTICE);
-
- $result = @iconv($from, $to, $string);
-
- $error = error_get_last();
- if($error['message']!='hi') {
-
- $result = $string;
- }
-
- return $result;
- }
上面是,当转换过程出现错误的报错的时候,我就不转换,保持原来的编码格式。用这个方法可以对很多PHP内部函数进行封装。
来自 http://koda.iteye.com/blog/671535