PHP5中只是增加了对异常的处理,但是之前很多低版本的函数不会抛出异常,比如 iconv等,当遇到非法输入的时候,会出现:
iconv(): Detected an incomplete multibyte character in input string
的错误信息,只能屏蔽,但却没有很好的方式来捕获这些错误事件,然后来进行处理。
翻阅了PHP的手册后发现了一个新函数,error_get_last(),大概就是取得程序中最后一个错误信息(包括Error、 Warning、Notice等所有的错误),这个是PHP 5.2以后出现的函数,通过这个函数,可以用下列代码来实现捕获错误事件的方式。
$result = @iconv('GBK', 'UTF8--', 'hh.hhsy.cc'); $error = error_get_last(); print_r($error);exit;
上面代码将打印出:
Array
(
[type] => 8
[message] => iconv(): Wrong charset, conversion from `GBK' to `UTF8--' is not allowed
[file] => /var/www/diary/h5Api/test.php
[line] => 9
)