PHP 8.5.0 Alpha 2 available for testing

xml_set_external_entity_ref_handler

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

xml_set_external_entity_ref_handlerConfigura el gestor XML de referencias externas

Descripción

xml_set_external_entity_ref_handler(XMLParser $parser, callable|string|null $handler): true

Establece el gestor de entidad externa del analizador XML parser.

Parámetros

parser

El analizador XML.

handler

Si null se pasa, el controlador se reinicia a su estado por omisión.

Advertencia

Una cadena vacía también reiniciará el controlador, sin embargo esta funcionalidad está deprecada a partir de PHP 8.4.0.

Si handler es un callable, el callable se define como el controlador.

Si handler es una string, puede ser el nombre de un método de un objeto definido con xml_set_object().

Advertencia

Esta funcionalidad está deprecada a partir de PHP 8.4.0.

Advertencia

A partir de PHP 8.4.0, se verifica la validez del callable durante la configuración del controlador, y no en el momento de su llamada. Esto significa que xml_set_object() debe ser llamado antes de definir un método como cadena como devolución de llamada. Sin embargo, como este comportamiento también está deprecado a partir de PHP 8.4.0, se recomienda utilizar un callable adecuado para el método.

La firma del gestor debe ser:

handler(
    XMLParser $parser,
    string $open_entity_names,
    string|false $base,
    string $system_id,
    string|false $public_id
): bool
parser
El analizador XML que llama al controlador.
open_entity_names
La lista de nombres de entidades, separados por espacios. Estas entidades son accesibles al análisis por esta entidad (incluyendo el nombre de la entidad referenciada).
base
La raíz para la resolución del identificador de sistema (system_id) de la entidad externa.
system_id
El identificador de sistema tal como se especifica en la declaración de entidad.
public_id
El identificador público tal como se especifica en la declaración de entidad, o una cadena vacía, si no se ha especificado ninguna declaración. El espacio en el identificador público será normalizado como se especifica en las especificaciones XML.

El gestor debería devolver true si la entidad ha sido gestionada, de lo contrario false. Cuando se devuelve false el analizador XML detendrá el análisis y xml_get_error_code() devolverá XML_ERROR_EXTERNAL_ENTITY_HANDLING.

Valores devueltos

Retorna siempre true.

Historial de cambios

Versión Descripción
8.4.0 Passing a non-callable string to handler is now deprecated, use a proper callable for methods, or null to reset the handler.
8.4.0 The validity of handler as a callable is now checked when setting the handler instead of checking when calling it.
8.0.0 parser ahora espera una instancia de XMLParser en lugar de un resource xml.
7.3.0 El valor de retorno de handler ya no es ignorado cuando la extensión ha sido compilada contra libxml. Anteriormente, el valor de retorno era ignorado y el análisis nunca se detenía.
add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top