<?php
include_once $_SERVER['DOCUMENT_ROOT'] . '/include/shared-manual.inc';
$TOC = array();
$TOC_DEPRECATED = array();
$PARENTS = array();
include_once dirname(__FILE__) ."/toc/ref.libxml.inc";
$setup = array (
  'home' => 
  array (
    0 => 'index.php',
    1 => 'PHP Manual',
  ),
  'head' => 
  array (
    0 => 'UTF-8',
    1 => 'en',
  ),
  'this' => 
  array (
    0 => 'function.libxml-get-errors.php',
    1 => 'libxml_get_errors',
    2 => 'Retrieve array of errors',
  ),
  'up' => 
  array (
    0 => 'ref.libxml.php',
    1 => 'libxml Functions',
  ),
  'prev' => 
  array (
    0 => 'function.libxml-disable-entity-loader.php',
    1 => 'libxml_disable_entity_loader',
  ),
  'next' => 
  array (
    0 => 'function.libxml-get-external-entity-loader.php',
    1 => 'libxml_get_external_entity_loader',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'en',
    'path' => 'reference/libxml/functions/libxml-get-errors.xml',
  ),
  'history' => 
  array (
  ),
);
$setup["toc"] = $TOC;
$setup["toc_deprecated"] = $TOC_DEPRECATED;
$setup["parents"] = $PARENTS;
manual_setup($setup);

contributors($setup);

?>
<div id="function.libxml-get-errors" class="refentry">
 <div class="refnamediv">
  <h1 class="refname">libxml_get_errors</h1>
  <p class="verinfo">(PHP 5 &gt;= 5.1.0, PHP 7, PHP 8)</p><p class="refpurpose"><span class="refname">libxml_get_errors</span> &mdash; <span class="dc-title">
   Retrieve array of errors
  </span></p>

 </div>
 <div class="refsect1 description" id="refsect1-function.libxml-get-errors-description">
  <h3 class="title">Description</h3>
  <div class="methodsynopsis dc-description">
   <span class="modifier">function</span> <span class="methodname"><strong>libxml_get_errors</strong></span>(): <span class="type"><a href="language.types.array.php" class="type array">array</a></span></div>

  <p class="para rdfs-comment">
   Retrieve array of errors.
  </p>
 </div>


 <div class="refsect1 parameters" id="refsect1-function.libxml-get-errors-parameters">
  <h3 class="title">Parameters</h3>
  <p class="simpara">This function has no parameters.</p>
 </div>


 <div class="refsect1 returnvalues" id="refsect1-function.libxml-get-errors-returnvalues">
  <h3 class="title">Return Values</h3>
  <p class="para">
   Returns an array with <span class="type"><a href="class.libxmlerror.php" class="type LibXMLError">LibXMLError</a></span> objects if there are any
   errors in the buffer, or an empty array otherwise.
  </p>
 </div>


 <div class="refsect1 examples" id="refsect1-function.libxml-get-errors-examples">
  <h3 class="title">Examples</h3>
  <p class="para">
   <div class="example" id="example-1">
    <p><strong>Example #1 A <span class="function"><strong>libxml_get_errors()</strong></span> example</strong></p>
    <div class="example-contents"><p>
     This example demonstrates how to build a simple libxml error handler.
    </p></div>
    <div class="example-contents">
<div class="annotation-interactive phpcode"><pre><code style="color: #000000"><span style="color: #0000BB">&lt;?php

libxml_use_internal_errors</span><span style="color: #007700">(</span><span style="color: #0000BB">true</span><span style="color: #007700">);

</span><span style="color: #0000BB">$xmlstr </span><span style="color: #007700">= &lt;&lt;&lt; XML
</span><span style="color: #DD0000">&lt;?xml version='1.0' standalone='yes'?&gt;
&lt;movies&gt;
 &lt;movie&gt;
  &lt;titles&gt;PHP: Behind the Parser&lt;/title&gt;
 &lt;/movie&gt;
&lt;/movies&gt;
</span><span style="color: #007700">XML;

</span><span style="color: #0000BB">$doc </span><span style="color: #007700">= </span><span style="color: #0000BB">simplexml_load_string</span><span style="color: #007700">(</span><span style="color: #0000BB">$xmlstr</span><span style="color: #007700">);
</span><span style="color: #0000BB">$xml </span><span style="color: #007700">= </span><span style="color: #0000BB">explode</span><span style="color: #007700">(</span><span style="color: #DD0000">"\n"</span><span style="color: #007700">, </span><span style="color: #0000BB">$xmlstr</span><span style="color: #007700">);

if (</span><span style="color: #0000BB">$doc </span><span style="color: #007700">=== </span><span style="color: #0000BB">false</span><span style="color: #007700">) {
    </span><span style="color: #0000BB">$errors </span><span style="color: #007700">= </span><span style="color: #0000BB">libxml_get_errors</span><span style="color: #007700">();

    foreach (</span><span style="color: #0000BB">$errors </span><span style="color: #007700">as </span><span style="color: #0000BB">$error</span><span style="color: #007700">) {
        echo </span><span style="color: #0000BB">display_xml_error</span><span style="color: #007700">(</span><span style="color: #0000BB">$error</span><span style="color: #007700">, </span><span style="color: #0000BB">$xml</span><span style="color: #007700">);
    }

    </span><span style="color: #0000BB">libxml_clear_errors</span><span style="color: #007700">();
}


function </span><span style="color: #0000BB">display_xml_error</span><span style="color: #007700">(</span><span style="color: #0000BB">$error</span><span style="color: #007700">, </span><span style="color: #0000BB">$xml</span><span style="color: #007700">)
{
    </span><span style="color: #0000BB">$return  </span><span style="color: #007700">= </span><span style="color: #0000BB">$xml</span><span style="color: #007700">[</span><span style="color: #0000BB">$error</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">line </span><span style="color: #007700">- </span><span style="color: #0000BB">1</span><span style="color: #007700">] . </span><span style="color: #DD0000">"\n"</span><span style="color: #007700">;
    </span><span style="color: #0000BB">$return </span><span style="color: #007700">.= </span><span style="color: #0000BB">str_repeat</span><span style="color: #007700">(</span><span style="color: #DD0000">'-'</span><span style="color: #007700">, </span><span style="color: #0000BB">$error</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">column</span><span style="color: #007700">) . </span><span style="color: #DD0000">"^\n"</span><span style="color: #007700">;

    switch (</span><span style="color: #0000BB">$error</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">level</span><span style="color: #007700">) {
        case </span><span style="color: #0000BB">LIBXML_ERR_WARNING</span><span style="color: #007700">:
            </span><span style="color: #0000BB">$return </span><span style="color: #007700">.= </span><span style="color: #DD0000">"Warning </span><span style="color: #0000BB">$error</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">code</span><span style="color: #DD0000">: "</span><span style="color: #007700">;
            break;
         case </span><span style="color: #0000BB">LIBXML_ERR_ERROR</span><span style="color: #007700">:
            </span><span style="color: #0000BB">$return </span><span style="color: #007700">.= </span><span style="color: #DD0000">"Error </span><span style="color: #0000BB">$error</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">code</span><span style="color: #DD0000">: "</span><span style="color: #007700">;
            break;
        case </span><span style="color: #0000BB">LIBXML_ERR_FATAL</span><span style="color: #007700">:
            </span><span style="color: #0000BB">$return </span><span style="color: #007700">.= </span><span style="color: #DD0000">"Fatal Error </span><span style="color: #0000BB">$error</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">code</span><span style="color: #DD0000">: "</span><span style="color: #007700">;
            break;
    }

    </span><span style="color: #0000BB">$return </span><span style="color: #007700">.= </span><span style="color: #0000BB">trim</span><span style="color: #007700">(</span><span style="color: #0000BB">$error</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">message</span><span style="color: #007700">) .
               </span><span style="color: #DD0000">"\n  Line: </span><span style="color: #0000BB">$error</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">line</span><span style="color: #DD0000">" </span><span style="color: #007700">.
               </span><span style="color: #DD0000">"\n  Column: </span><span style="color: #0000BB">$error</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">column</span><span style="color: #DD0000">"</span><span style="color: #007700">;

    if (</span><span style="color: #0000BB">$error</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">file</span><span style="color: #007700">) {
        </span><span style="color: #0000BB">$return </span><span style="color: #007700">.= </span><span style="color: #DD0000">"\n  File: </span><span style="color: #0000BB">$error</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">file</span><span style="color: #DD0000">"</span><span style="color: #007700">;
    }

    return </span><span style="color: #DD0000">"</span><span style="color: #0000BB">$return</span><span style="color: #DD0000">\n\n--------------------------------------------\n\n"</span><span style="color: #007700">;
}

</span><span style="color: #0000BB">?&gt;</span></code></pre></div>
    </div>

    <div class="example-contents"><p>The above example will output:</p></div>
    <div class="example-contents screen">
<div class="annotation-interactive examplescode"><pre class="examplescode">&lt;titles&gt;PHP: Behind the Parser&lt;/title&gt;
----------------------------------------------^
Fatal Error 76: Opening and ending tag mismatch: titles line 4 and title
  Line: 4
  Column: 46

--------------------------------------------</pre>
</div>
    </div>
   </div>
  </p>
 </div>


 <div class="refsect1 seealso" id="refsect1-function.libxml-get-errors-seealso">
  <h3 class="title">See Also</h3>
  <p class="para">
   <ul class="simplelist">
    <li><span class="function"><a href="function.libxml-get-last-error.php" class="function" rel="rdfs-seeAlso">libxml_get_last_error()</a> - Retrieve last error from libxml</span></li>
    <li><span class="function"><a href="function.libxml-clear-errors.php" class="function" rel="rdfs-seeAlso">libxml_clear_errors()</a> - Clear libxml error buffer</span></li>
   </ul>
  </p>
 </div>

</div><?php manual_footer($setup); ?>