PHP - Función libxml_set_external_entity_loader ()

Definición y uso

XML es un lenguaje de marcado para compartir los datos a través de la web, XML es legible tanto para humanos como para máquinas. La clase libXMLError contiene los errores lanzados por la biblioteca libxml.

los libxml_set_external_entity_loader() La función se utiliza para cambiar el cargador de entidad externa predeterminado.

Sintaxis

libxml_set_external_entity_loader($function);

Parámetros

No Señor Descripción de parámetros
1

function(Mandatory)

Esta es una función invocable con 3 argumentos, a saber, identificación pública, identificación del sistema y un contexto.

Valores devueltos

Esta función devuelve un valor booleano que es VERDADERO en caso de éxito y FALSO en caso de falla.

Versión PHP

Esta función se introdujo por primera vez en PHP Versión 5 y funciona en todas las versiones posteriores.

Ejemplo

El siguiente ejemplo demuestra el uso de la función libxml_set_external_entity_loader ():

<html>
   <head>
      <body>
         <?php
            $str = <<<XML
            <!DOCTYPE test PUBLIC "-//TEST/BAR" "http://test.com/testbar">
            <test>bar</test>
            $dtd = <<<DTD
            <!ELEMENT test (#PCDATA)>
            libxml_set_external_entity_loader(
            function ($public, $sys, $context) use($dtd) {
               print_r($public);
               print_r($sys);
               print_r($context);
               $f = fopen("php://temp", "r+");
               fwrite($f, $dtd);
               rewind($f);
               return $f;
            } 
         );
         $doc = new DOMDocument;
         $r =  $doc->loadXML($str);
         print_r($doc->validate());
         ?>      
      </body>
   </head>   
</html>

Esto producirá el siguiente resultado:

-//TEST/BARhttp://test.com/testbarArray ( 
   [directory] => [intSubName] => [extSubURI] => [extSubSystem] => ) 1