PHP xml_set_external_entity_ref_handler() συνάρτηση

Ορισμός και χρήση

Η συνάρτηση xml_set_external_entity_ref_handler() ορίζει τη συνάρτηση που καλείται όταν ο αναλυτής βρίσκει την εξωτερική οντότητα στο έγγραφο XML.

Αν ο επεξεργαστής έχει επιτυχώς δημιουργηθεί, η συνάρτηση θα επιστρέψει true; σε αντίθετη περίπτωση, θα επιστρέψει false.

Γλώσσα

xml_set_external_entity_ref_handler(parser,handler)
Παράμετροι Περιγραφή
parser Απαιτείται. Ορίζει τον XML αναλυτή που θα χρησιμοποιηθεί.
handler Απαιτείται. Ορίζει τη συνάρτηση που καλείται όταν ο αναλυτής βρίσκει την εξωτερική οντότητα.

από handler Η συνάρτηση που ορίζεται από την παράμετρο πρέπει να έχει έξι παράμετρος:

Παράμετροι Περιγραφή
parser Απαιτείται. Ορίζει μια μεταβλητή που περιέχει τον XML αναλυτή που καλείται από τον επεξεργαστή.
name Απαιτείται. Ορίζει μια μεταβλητή που περιέχει το όνομα της εξωτερικής οντότητας.
base

Απαιτείται. Ορίζει μια μεταβλητή που περιέχει τη βάση για τον σύστημα αναγνώρισης (system_id) της εξωτερικής οντότητας.

Τρέχοντα, αυτός ο παράμετρος συνήθως ορίζεται ως κενή αλφαβητική ακολουθία.

system_id Required. Specifies the variable containing the system identifier of the external entity.
public_id Required. Specifies the variable containing the public identifier of the external entity.

Description

handler The parameter can also be an array containing object references and method names.

Examples

<?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 Error: %s at line %d", 
  xml_error_string(xml_get_error_code($parser)),
  xml_get_current_line_number($parser)));
  }
xml_parser_free($parser);
?>