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);
?>