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