Funzione PHP xml_set_external_entity_ref_handler()

Definizione e uso

La funzione xml_set_external_entity_ref_handler() definisce la funzione chiamata quando il parser trova un'entità esterna nel documento XML.

Se il gestore viene creato con successo, la funzione restituirà true; altrimenti restituirà false.

Sintassi

xml_set_external_entity_ref_handler(parser,handler)
Parametro Descrizione
parser Obbligatorio. Definisce il parser XML da utilizzare.
handler Obbligatorio. Definisce la funzione chiamata quando il parser trova un'entità esterna.

Da handler La funzione definita dal parametro deve avere sei parametri:

Parametro Descrizione
parser Obbligatorio. Definisce una variabile che contiene il parser XML chiamato dal processore.
name Obbligatorio. Definisce una variabile che contiene il nome dell'entità esterna.
base

Obbligatorio. Definisce una variabile che contiene l'identificatore di sistema di base dell'entità esterna (system_id ).

L'attuale parametro di solito viene impostato come una stringa vuota.

system_id Obbligatorio. Specifica la variabile che contiene l'identificatore del sistema dell'entità esterna.
public_id Obbligatorio. Specifica la variabile che contiene l'identificatore pubblico dell'entità esterna.

Descrizione

handler Il parametro può anche essere un array che contiene riferimenti agli oggetti e i nomi dei metodi.

Esempio

<?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("Errore XML: %s alla riga %d", 
  xml_error_string(xml_get_error_code($parser)),
  xml_get_current_line_number($parser)));
  }
xml_parser_free($parser);
?>