PHP - Fonction libxml_set_external_entity_loader ()

Définition et utilisation

XML est un langage de balisage permettant de partager les données sur le Web, XML est à la fois lisible par l'homme et par machine. La classe libXMLError contient les erreurs générées par la bibliothèque libxml.

le libxml_set_external_entity_loader() La fonction est utilisée pour changer le chargeur d'entité externe par défaut.

Syntaxe

libxml_set_external_entity_loader($function);

Paramètres

Sr. Non Paramètre et description
1

function(Mandatory)

Il s'agit d'une fonction appelable avec 3 arguments à savoir, id public, id système et un contexte.

Valeurs de retour

Cette fonction renvoie une valeur booléenne qui est TRUE en cas de succès et FALSE en cas d'échec.

Version PHP

Cette fonction a été introduite pour la première fois dans la version 5 de PHP et fonctionne dans toutes les versions ultérieures.

Exemple

L'exemple suivant montre l'utilisation de la fonction 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>

Cela produira le résultat suivant -

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