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