0

warningsとerrorsのリストを単純なエラーバナーに置き換えたい。このコードでエラーが発生するかどうかを確認しようとしています。エラーが発生する場合は、カスタムエラーを出力します

$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 に答える