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 ou uma string vazia for passada, o manipulador será redefinido para seu estado padrão.

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 objet definido com xml_set_object().

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.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.