2012-08-26 57 views
0

我想用一个简单的错误横幅替换warning s和error s的列表。我想,以检查是否该代码产生错误,如果是输出自定义错误简单错误检查是否声明

$sxml = simplexml_load_file($yurl) 

我与trycatch块发挥各地,但我似乎无法得到它的权利,任何帮助将不胜感激。

回答

3

使用libxml_use_internal_errors()

<?php 

    libxml_use_internal_errors(true); 

    $sxml = simplexml_load_file($yurl); 

    if (!$sxml) { 
     foreach (libxml_get_errors() as $error) { 
      // Custom error banner here 
       switch ($error->level) { 
        case LIBXML_ERR_WARNING: 
         $return .= "Warning $error->code: "; 
         break; 
        case LIBXML_ERR_ERROR: 
         $return .= "Error $error->code: "; 
         break; 
        case LIBXML_ERR_FATAL: 
         $return .= "Fatal Error $error->code: "; 
         break; 
        }  
     } 
      //clears libxml error buffer 
     libxml_clear_errors(); 
    } 

?> 

libxml_get_errors()返回libXMLError对象的数组。

1

您只能catch例外,而不是错误。

使用set_error_handler()用您自己的函数替换PHP的默认错误处理程序。