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