PHP - Funzione libxml_set_external_entity_loader ()

Definizione e utilizzo

XML è un linguaggio di markup per condividere i dati sul Web, XML è sia leggibile dall'uomo che dalla macchina. La classe libXMLError contiene gli errori lanciati dalla libreria libxml.

Il libxml_set_external_entity_loader() viene utilizzata per modificare il caricatore di entità esterno predefinito.

Sintassi

libxml_set_external_entity_loader($function);

Parametri

Suor n Parametro e descrizione
1

function(Mandatory)

Questa è una funzione richiamabile con 3 argomenti, ovvero id pubblico, ID di sistema e un contesto.

Valori restituiti

Questa funzione restituisce un valore booleano che è TRUE in caso di successo e FALSE in caso di fallimento.

Versione PHP

Questa funzione è stata introdotta per la prima volta nella versione 5 di PHP e funziona in tutte le versioni successive.

Esempio

L'esempio seguente mostra l'utilizzo della funzione 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>

Questo produrrà il seguente risultato:

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