PHP xml_set_external_entity_ref_handler() Funktion
Definition und Verwendung
Die Funktion xml_set_external_entity_ref_handler() definiert die Funktion, die aufgerufen wird, wenn der Parser ein externes Element im XML-Dokument findet.
Wenn der Verarbeiter erfolgreich eingerichtet wird, gibt die Funktion true zurück; andernfalls wird false zurückgegeben.
Syntax
xml_set_external_entity_ref_handler(parser,Handler)
Parameter | Beschreibung |
---|---|
parser | Erforderlich. Definiert den XML-Parser, der verwendet werden soll. |
Handler | Erforderlich. Definiert die Funktion, die aufgerufen wird, wenn der Parser ein externes Element findet. |
von Handler Die von den Parametern festgelegte Funktion muss sechs Parameter haben:
Parameter | Beschreibung |
---|---|
parser | Erforderlich. Definiert eine Variable, die den XML-Parser enthält, der von dem Verarbeiter aufgerufen wird. |
name | Erforderlich. Definiert eine Variable, die den Namen eines externen Elements enthält. |
base |
Erforderlich. Definiert eine Variable, die den Grundstock für den Systemidentifier (system_id) eines externen Elements enthält. Der aktuelle Parameter wird in der Regel auf eine leere Zeichenkette gesetzt. |
system_id | Erforderlich. Definiert die Variable, die den systemischen Identifikator der externen Entity enthält. |
public_id | Erforderlich. Definiert die Variable, die den öffentlichen Identifikator der externen Entity enthält. |
Beschreibung
Handler Der Parameter kann auch ein Array sein, das Objektverweise und Methodennamen enthält.
Beispiel
<?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 Fehler: %s in Zeile %d", xml_error_string(xml_get_error_code($parser)), xml_get_current_line_number($parser))); } xml_parser_free($parser); ?>