Funzione PHP xml_set_external_entity_ref_handler()
Definizione e uso
La funzione xml_set_external_entity_ref_handler() definisce la funzione chiamata quando il parser trova un'entità esterna nel documento XML.
Se il gestore viene creato con successo, la funzione restituirà true; altrimenti restituirà false.
Sintassi
xml_set_external_entity_ref_handler(parser,handler)
Parametro | Descrizione |
---|---|
parser | Obbligatorio. Definisce il parser XML da utilizzare. |
handler | Obbligatorio. Definisce la funzione chiamata quando il parser trova un'entità esterna. |
Da handler La funzione definita dal parametro deve avere sei parametri:
Parametro | Descrizione |
---|---|
parser | Obbligatorio. Definisce una variabile che contiene il parser XML chiamato dal processore. |
name | Obbligatorio. Definisce una variabile che contiene il nome dell'entità esterna. |
base |
Obbligatorio. Definisce una variabile che contiene l'identificatore di sistema di base dell'entità esterna (system_id ). L'attuale parametro di solito viene impostato come una stringa vuota. |
system_id | Obbligatorio. Specifica la variabile che contiene l'identificatore del sistema dell'entità esterna. |
public_id | Obbligatorio. Specifica la variabile che contiene l'identificatore pubblico dell'entità esterna. |
Descrizione
handler Il parametro può anche essere un array che contiene riferimenti agli oggetti e i nomi dei metodi.
Esempio
<?php $parser=xml_parser_create(); function char($parser,$data) { echo $data; } function ext_ent_handler($parser,$ent,$base,$sysID,$pubID) { echo "$ent"; echo "$sysID"; echo "$pubID"; } xml_set_character_data_handler($parser,"char"); xml_set_external_entity_ref_handler($parser, "ext_ent_handler"); $fp=fopen("test.xml","r"); while ($data=fread($fp,4096)) { xml_parse($parser,$data,feof($fp)) or die (sprintf("Errore XML: %s alla riga %d", xml_error_string(xml_get_error_code($parser)), xml_get_current_line_number($parser))); } xml_parser_free($parser); ?>