0

我想用一个简单的错误横幅替换warnings 和s 的列表。error我正在尝试检查此代码是否产生错误,如果是,则输出自定义错误

$sxml = simplexml_load_file($yurl)

我玩过这个try catch街区,但我似乎无法做到正确,任何帮助将不胜感激。

4

2 回答 2

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

于 2012-08-26T10:14:48.623 回答
1

你只能catch例外,不能错误。

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

于 2012-08-26T10:12:00.533 回答