欢迎各位兄弟 发布技术文章

这里的技术是共享的

You are here

PHP中如何捕获Warning、Notice等错误信息

PHP5中只是增加了对异常的处理,但是之前很多低版本的函数不会抛出异常,比如 iconv等,当遇到非法输入的时候,会出现: 

iconv(): Detected an incomplete multibyte character in input string 

的错误信息,只能屏蔽,但却没有很好的方式来捕获这些错误事件,然后来进行处理。 

翻阅了PHP的手册后发现了一个新函数,error_get_last(),大概就是取得程序中最后一个错误信息(包括Error、 Warning、Notice等所有的错误),这个是PHP 5.2以后出现的函数,通过这个函数,可以用下列代码来实现捕获错误事件的方式。 
Php代码  收藏代码
  1. function my_iconv($from$to$string$line) {  
  2. @trigger_error('hi', E_USER_NOTICE);  
  3.   
  4. $result = @iconv($from$to$string);  
  5.   
  6. $error = error_get_last();  
  7. if($error['message']!='hi') {  
  8.    //处理错误    
  9.    $result = $string;  
  10. }  
  11.   
  12. return $result;  
  13. }  

上面是,当转换过程出现错误的报错的时候,我就不转换,保持原来的编码格式。用这个方法可以对很多PHP内部函数进行封装。

来自  
http://koda.iteye.com/blog/671535
普通分类: