PHP xml_set_external_entity_ref_handler() functie
Definitie en gebruik
De functie xml_set_external_entity_ref_handler() stelt de functie voor die wordt aangeroepen wanneer de parser een extern object in het XML-document vindt.
Als de processor succesvol wordt opgesteld, retourneert deze functie true; anders retourneert het false.
Syntax
xml_set_external_entity_ref_handler(parser,handler)
Parameters | Beschrijving |
---|---|
parser | Verplicht. Stelt de XML-parser voor die moet worden gebruikt. |
handler | Verplicht. Stelt de functie voor die wordt aangeroepen wanneer de parser een extern object vindt. |
Door handler De functie die door de parameters wordt gedefinieerd, moet zes parameters hebben:
Parameters | Beschrijving |
---|---|
parser | Verplicht. Stelt een variabele voor die de XML-parser bevat die door de processor wordt aangeroepen. |
name | Verplicht. Stelt een variabele voor die de naam van het externe object bevat. |
base |
Verplicht. Stelt een variabele voor die de basis bevat van het systeemidentificeermerk (system_id) van het externe object. Het huidige parameter wordt meestal ingesteld op een lege string. |
system_id | Verplicht. Definieert de variabele die de system identifier van de externe entiteit bevat. |
public_id | Verplicht. Definieert de variabele die de publieke identifier van de externe entiteit bevat. |
Beschrijving
handler De parameter kan ook een array zijn, die objectverwijzingen en methodenamen bevat.
Voorbeeld
<?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 Fout: %s op regel %d", xml_error_string(xml_get_error_code($parser)), xml_get_current_line_number($parser))); } xml_parser_free($parser); ?>