libxml_get_errors

(PHP 5 >= 5.1.0RC1)

libxml_get_errors --  Retrieve array of errors

Description

array libxml_get_errors ( void )

Retrieve array of errors.

Return Values

Returns an array with LibXMLError objects if there are any errors in the buffer, or an empty array otherwise.

Examples

Example 1. A libxml_get_errors() example

This example demonstrates how to build a simple libxml error handler.

<?php

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($xmlstr);
$xml = explode("\n", $xmlstr);

if (!
$doc) {
    
$errors = libxml_get_errors();

    foreach (
$errors as $error) {
        echo
display_xml_error($error, $xml);
    }

    
libxml_clear_errors();
}


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";
}

?>

The above example will output:

<titles>PHP: Behind the Parser</title>
^
Fatal Error 76: Opening and ending tag mismatch: titles line 4 and title
  Line: 4
  Column: 0

--------------------------------------------


Follow phpf1 on Twitter




F1 Site Family
AJAX F1
CSS F1
Database F1
Flash F1
HTML F1
Java F1
JavaScript F1
PhotoShop F1
PHP F1
Scripts F1
Tutorial F1
Windows F1

Total time: 0.1706