libxml_get_errors

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

libxml_get_errors Obtém um array de erros

Descrição

libxml_get_errors(): array

Obtém um array de erros.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna um array com objetos LibXMLError se houver algum erro no buffer, ou um array vazio caso contrário.

Exemplos

Example #1 Um exemplo de libxml_get_errors()

Este exemplo demonstra como construir um simples manipulador de erro da libxml.

<?php

libxml_use_internal_errors(true);

$xmlstr = <<< XML
<?xml version='1.0' standalone='yes'?>
<movies>
 <movie>
  <titles>PHP: Por Trás do Analisador</title>
 </movie>
</movies>
XML;

$doc = simplexml_load_string($xmlstr);
$xml = explode("\n", $xmlstr);

if ($doc === false) {
    $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 .= "Alerta $error->code: ";
            break;
        case LIBXML_ERR_ERROR:
            $return .= "Erro $error->code: ";
            break;
        case LIBXML_ERR_FATAL:
            $return .= "Erro fatal $error->code: ";
            break;
    }

    $return .= trim($error->message) .
               "\n  Line: $error->line" .
               "\n  Column: $error->column";

    if ($error->file) {
        $return .= "\n  Arquivo: $error->file";
    }

    return "$return\n\n--------------------------------------------\n\n";
}

?>

O exemplo acima produzirá:

<titles>PHP: Por Trás do Analisador</title>
----------------------------------------------^
Erro fatal 76: Opening and ending tag mismatch: titles line 4 and title
  Line: 4
  Column: 46

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

Veja Também