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>