PHP - função libxml_set_external_entity_loader ()

Definição e Uso

XML é uma linguagem de marcação para compartilhar os dados na web, XML é tanto para leitura humana quanto para máquina. A classe libXMLError contém os erros lançados pela biblioteca libxml.

o libxml_set_external_entity_loader() função é usada para alterar o carregador de entidade externa padrão.

Sintaxe

libxml_set_external_entity_loader($function);

Parâmetros

Sr. Não Parâmetro e Descrição
1

function(Mandatory)

Esta é uma função que pode ser chamada com 3 argumentos, a saber, id público, id do sistema e um contexto.

Valores Retornados

Esta função retorna um valor booleano que é VERDADEIRO em caso de sucesso e FALSO em caso de falha.

Versão PHP

Esta função foi introduzida pela primeira vez no PHP Versão 5 e funciona em todas as versões posteriores.

Exemplo

O exemplo a seguir demonstra o uso da função 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>

Isso produzirá o seguinte resultado -

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