Annotation of embedaddon/php/ext/libxml/tests/002.phpt, revision 1.1.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>