mirror of
https://github.com/php/php-src.git
synced 2025-01-12 05:54:13 +08:00
4be7f4aecd
- com_dotnet gets a .cvsignore - Ulf will take care of mysql extensions, rest complete
88 lines
1.7 KiB
PHP
88 lines
1.7 KiB
PHP
--TEST--
|
|
libxml_get_errors()
|
|
--SKIPIF--
|
|
<?php if (!extension_loaded('simplexml')) die('skip'); ?>
|
|
--FILE--
|
|
<?php
|
|
|
|
var_dump(libxml_use_internal_errors(true));
|
|
|
|
$xmlstr = <<< XML
|
|
<?xml version='1.0' standalone='yes'?>
|
|
<movies>
|
|
<movie>
|
|
<titles>PHP: Behind the Parser</title>
|
|
</movie>
|
|
</movies>
|
|
XML;
|
|
|
|
$doc = simplexml_load_string((binary)$xmlstr);
|
|
$xml = explode("\n", $xmlstr);
|
|
|
|
if (!$doc) {
|
|
$errors = libxml_get_errors();
|
|
|
|
foreach ($errors as $error) {
|
|
echo display_xml_error($error, $xml);
|
|
}
|
|
|
|
var_dump(libxml_get_last_error());
|
|
}
|
|
|
|
|
|
function display_xml_error($error, $xml)
|
|
{
|
|
$return = $xml[$error->line - 1] . "\n";
|
|
$return .= str_repeat('-', $error->column) . "^\n";
|
|
|
|
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;
|
|
}
|
|
|
|
$return .= trim($error->message) . "\n Line: $error->line" . "\n Column: $error->column";
|
|
|
|
if ($error->file) {
|
|
$return .= "\n File: $error->file";
|
|
}
|
|
|
|
return "$return\n\n--------------------------------------------\n\n";
|
|
}
|
|
|
|
|
|
echo "Done\n";
|
|
?>
|
|
--EXPECTF--
|
|
bool(false)
|
|
<titles>PHP: Behind the Parser</title>
|
|
%s
|
|
Fatal Error 76: Opening and ending tag mismatch: titles line 4 and title
|
|
Line: 4
|
|
Column: %d
|
|
|
|
--------------------------------------------
|
|
|
|
object(LibXMLError)#%d (6) {
|
|
[u"level"]=>
|
|
int(3)
|
|
[u"code"]=>
|
|
int(76)
|
|
[u"column"]=>
|
|
int(%d)
|
|
[u"message"]=>
|
|
string(57) "Opening and ending tag mismatch: titles line 4 and title
|
|
"
|
|
[u"file"]=>
|
|
string(0) ""
|
|
[u"line"]=>
|
|
int(4)
|
|
}
|
|
Done
|