Funkcja PHP xml_set_external_entity_ref_handler()

Definicja i użycie

Funkcja xml_set_external_entity_ref_handler() określa funkcję wywoływane, gdy parser znajduje zewnętrzny obiekt w dokumencie XML.

Jeśli procesor zostanie pomyślnie utworzony, funkcja zwróci true; w przeciwnym razie zwróci false.

Gramatyka

xml_set_external_entity_ref_handler(parser,handler)
Parametry Opis
parser Wymagane. Określa XML parser, który ma być użyty.
handler Wymagane. Określa funkcję wywoływane, gdy parser znajduje zewnętrzny obiekt.

przez handler Funkcja określona przez parametr musi mieć sześć parametrów:

Parametry Opis
parser Wymagane. Określa zmienną, która zawiera XML parser wywoływany przez procesor.
name Wymagane. Określa zmienną, która zawiera nazwę zewnętrznego obiektu.
base

Wymagane. Określa zmienną, która zawiera podstawę identyfikatora systemowego (system_id) zewnętrznego obiektu.

Aktualnie ten parametr jest zazwyczaj ustawiany na pustą ciąg liter.

system_id Wymagane. Określa zmienną zawierającą systemowy identyfikator zewnętrznego elementu.
public_id Wymagane. Określa zmienną zawierającą publiczny identyfikator zewnętrznego elementu.

Opis

handler Parametr może również być tablicą, która zawiera odniesienia do obiektów i nazwy metod.

Przykład

<?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("Błąd XML: %s w wierszu %d", 
  xml_error_string(xml_get_error_code($parser)),
  xml_get_current_line_number($parser)));
  }
xml_parser_free($parser);
?>