我想用简单的错误横幅替换warning
和error
的列表。我正在尝试检查此代码是否产生错误,如果是,则输出自定义错误
$sxml = simplexml_load_file($yurl)
我使用了try
catch
区块,但我似乎无法做到正确,任何帮助都将受到赞赏。
答案 0 :(得分: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 :(得分:1)
您只能catch
例外,而不是错误。
使用set_error_handler()
将PHP的默认错误处理程序替换为您自己的函数。