# xml_set_external_entity_ref_handler

(PHP 4, PHP 5, PHP 7, PHP 8)

xml_set_external_entity_ref_handler — Configura el manejador de referencia a entidades externas

### Descripción

xml_set_external_entity_ref_handler(resource `$parser`, callable `$handler`): bool

Configura la función del manejador de referencia a entidades externas para el intérprete XML `parser`.

### Parámetros

`parser`

  Identificador del recurso del intérprete XML para el que se va a configurar la función del manejador de referencia a entidades externas

`handler`

  `handler` es un string que contiene el nombre de una función que debe existir cuando xml_parse() es llamado por `parser`.

  La función llamada mediante `handler` debe aceptar cinco parámetros, y deberia devolver un número entero. Si el valor devuelto desde el manejador es `false` (lo cual ocurrirá si no se devulve un valor), el intérprete XML detendrá el analizado y xml_get_error_code() devolverá `XML_ERROR_EXTERNAL_ENTITY_HANDLING`.

  handler(
  resource `$parser`,
  string `$open_entity_names`,
  string `$base`,
  string `$system_id`,
  string `$public_id`
  )
  `parser`
    El primer parámetro, parser, hace referencia al intérprete XML que llama al manejador.
  `open_entity_names`
    El segundo parámetro, `open_entity_names`, es una lista separada por espacios de los nombres de las entidades que estan abiertas para el análisis de esta entidad (incluyendo el nombre de la entidad referenciada).
  `base`
    Esta es la base para resolver el identificador de sistema (`system_id`) de la declaración de notación. Actualmente este parámetro siempre se establecerá como una cadena vacia.
  `system_id`
    El cuarto parámetro, `system_id`, es el identificador de sistema tal como se especifica en la declaración de entidad.
  `public_id`
    El quinto parámetro, `public_id`, es el identificador público tal como se especifica en la declaración de entidad, o una cadena vacia si no se habia especificado; en el identificador público el espacio en blanco se habrá normalizado como lo requerido mediante las especificaciones XML.

  Si la función del manejador se configura como una cadena vacia, o `false`, el manejador en cuestión se deshabilita.

  > Nota: En lugar del nombre de una función, se puede asignar un array que contenga la referencia a un objeto o el nombre de un método.

### Valores devueltos

Devuelve `true` en caso de éxito o `false` en caso de error.