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