PHP Conference Nagoya 2025

xml_set_external_entity_ref_handler

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

xml_set_external_entity_ref_handlerConfigura manipulador de referência de entidade externa

Descrição

xml_set_external_entity_ref_handler(XMLParser $parser, callable $handler): true

Define a função do manipulador de referência de entidade externa para o analisador XML parser.

Parâmetros

parser

O analisador XML.

handler

Se null for passado, o manipulador é redefinido para seu estado padrão.

Aviso

Uma string vazia também redefine o manipulador, entretanto isto foi descontinuado a partir do PHP 8.4.0.

Se handler for um callable, o callable será definido como o manipulador.

Se handler for uma string, ela pode ser o nome de um método de um objeto definido com xml_set_object().

Aviso

Isto foi descontinuado a partir do PHP 8.4.0.

Aviso

A partir do PHP 8.4.0, a função de retorno é verificada quanto à validade ao configurar o manipulador, e não quando é chamada. Isto significa que xml_set_object() precisa ser chamada antes de configurar uma string de método como a função de retorno. Entretando, como este comportamento também foi descontinuado a partir do PHP 8.4.0, usar um callable adequado para o método é recomendado.

A assinatura do manipulador deve ser:

handler(
    XMLParser $parser,
    string $open_entity_names,
    string|false $base,
    string $system_id,
    string|false $public_id
): bool
parser
O analisador XML que chama o manipulador.
open_entity_names
Uma lista separada por espaços dos nomes das entidades que estão abertas para a análise desta entidade (incluindo o nome da entidade referenciada).
base
Esta é a base para resolver o identificador do sistema (system_id) da entidade externa.
system_id
O identificador do sistema conforme especificado na declaração da entidade.
public_id
O identificador público conforme especificado na declaração da entidade, ou uma string vazia se nenhuma foi especificada; o espaço em branco no identificador público terá sido normalizado conforme exigido pela especificação XML.

O manipulador deve retornar true se a entidade foi manipulada, false caso contrário. Ao retornar false o analisador XML interromperá a análise e xml_get_error_code() retornará XML_ERROR_EXTERNAL_ENTITY_HANDLING.

Valor Retornado

Sempre retorna true.

Registro de Alterações

Versão Descrição
8.4.0 Passar uma string não-callable no parâmetro handler foi descontinuado, use um chamável apropriado para métodos, ou null para redefinir o manipulador.
8.4.0 A validade do manipulador handler como um tipo callable agora é verificada ao configurar o manipulador ao invés de verificar na chamada.
8.0.0 O parâmetro parser agora espera uma instância de XMLParser; anteriormente, um resource xml válido era esperado.
7.3.0 O valor de retorno do handler não é mais ignorado se a extensão tiver sido construída com base em libxml. Anteriormente, o valor de retorno era ignorado e a análise nunca parava.
adicione uma nota

Notas Enviadas por Usuários (em inglês)

Não há notas de usuários para esta página.
To Top