Annotation of embedaddon/php/ext/libxml/tests/002.phpt, revision 1.1

1.1     ! misho       1: --TEST--
        !             2: libxml_get_errors()
        !             3: --SKIPIF--
        !             4: <?php if (!extension_loaded('simplexml')) die('skip'); ?>
        !             5: --FILE--
        !             6: <?php
        !             7: 
        !             8: var_dump(libxml_use_internal_errors(true));
        !             9: 
        !            10: $xmlstr = <<< XML
        !            11: <?xml version='1.0' standalone='yes'?>
        !            12:     <movies>
        !            13:         <movie>
        !            14:             <titles>PHP: Behind the Parser</title>
        !            15:         </movie>
        !            16:     </movies>
        !            17: XML;
        !            18: 
        !            19: $doc = simplexml_load_string($xmlstr);
        !            20: $xml = explode("\n", $xmlstr);
        !            21: 
        !            22: if (!$doc) {
        !            23:        $errors = libxml_get_errors();
        !            24: 
        !            25:        foreach ($errors as $error) {
        !            26:                echo display_xml_error($error, $xml);
        !            27:        }
        !            28: 
        !            29:        var_dump(libxml_get_last_error());
        !            30: }
        !            31: 
        !            32: 
        !            33: function display_xml_error($error, $xml)
        !            34: {
        !            35:        $return  = $xml[$error->line - 1] . "\n";
        !            36:        $return .= str_repeat('-', $error->column) . "^\n";
        !            37: 
        !            38:        switch ($error->level) {
        !            39:                case LIBXML_ERR_WARNING:
        !            40:                        $return .= "Warning $error->code: ";
        !            41:                        break;
        !            42:                case LIBXML_ERR_ERROR:
        !            43:                        $return .= "Error $error->code: ";
        !            44:                        break;
        !            45:                case LIBXML_ERR_FATAL:
        !            46:                        $return .= "Fatal Error $error->code: ";
        !            47:                        break;
        !            48:        }
        !            49: 
        !            50:        $return .= trim($error->message) . "\n  Line: $error->line" . "\n  Column: $error->column";
        !            51: 
        !            52:        if ($error->file) {
        !            53:                $return .= "\n  File: $error->file";
        !            54:        }
        !            55: 
        !            56:        return "$return\n\n--------------------------------------------\n\n";
        !            57: }
        !            58: 
        !            59: 
        !            60: echo "Done\n";
        !            61: ?>
        !            62: --EXPECTF--
        !            63: bool(false)
        !            64:             <titles>PHP: Behind the Parser</title>
        !            65: %s
        !            66: Fatal Error 76: Opening and ending tag mismatch: titles line 4 and title
        !            67:   Line: 4
        !            68:   Column: %d
        !            69: 
        !            70: --------------------------------------------
        !            71: 
        !            72: object(LibXMLError)#%d (6) {
        !            73:   ["level"]=>
        !            74:   int(3)
        !            75:   ["code"]=>
        !            76:   int(76)
        !            77:   ["column"]=>
        !            78:   int(%d)
        !            79:   ["message"]=>
        !            80:   string(57) "Opening and ending tag mismatch: titles line 4 and title
        !            81: "
        !            82:   ["file"]=>
        !            83:   string(0) ""
        !            84:   ["line"]=>
        !            85:   int(4)
        !            86: }
        !            87: Done

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>