PHP xml_set_external_entity_ref_handler() funktion
Definition og brug
xml_set_external_entity_ref_handler() funktionen definerer funktionen, der kaldes, når parseren finder en ekstern enhed i XML-dokumentet.
Hvis behandleren oprettes succesfuldt, vil funktionen returnere true; ellers returneres false.
Syntaks
xml_set_external_entity_ref_handler(parser,handler)
Parameter | Beskrivelse |
---|---|
parser | Obligatorisk. Definerer den XML-parser, der skal bruges. |
handler | Obligatorisk. Definerer funktionen, der kaldes, når parseren finder en ekstern enhed. |
af handler Den funktion, der defineres af parameteren, skal have seks parametre:
Parameter | Beskrivelse |
---|---|
parser | Obligatorisk. Definerer en variabel, der indeholder XML-parseren, der kaldes af behandleren. |
name | Obligatorisk. Definerer en variabel, der indeholder navnet på den eksterne enhed. |
base |
Obligatorisk. Definerer en variabel, der indeholder grundlæggende systemidentifikator (system_id) for at dekryptere eksterne enheder. Denne parameter er normalt sat til en tom streng. |
system_id | Obligatorisk. Angiver variablen, der indeholder den systematiske identifikator for den eksterne enhed. |
public_id | Obligatorisk. Angiver variablen, der indeholder den offentlige identifikator for den eksterne enhed. |
Beskrivelse
handler Parametren kan også være en array, der indeholder objektreferencer og metodenavne.
Eksempel
<?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("XML Fejl: %s på linje %d", xml_error_string(xml_get_error_code($parser)), xml_get_current_line_number($parser))); } xml_parser_free($parser); ?>