(PHP 5 >= 5.1.0, PHP 7)
Retrieve array of errors
array libxml_get_errors ( void )
Retrieve array of errors.
Returns:
Returns an array with LibXMLError objects if there are any errors in the buffer, or an empty array otherwise.
Examples:
A libxml_get_errors() example
This example demonstrates how to build a simple libxml error handler.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 | <?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: 46 --------------------------------------------
See also:
Please login to continue.