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