Configura manipulador de referência de entidade externa

# xml_set_external_entity_ref_handler

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

xml_set_external_entity_ref_handler — Configura manipulador de referência de entidade externa

### Descrição

function xml_set_external_entity_ref_handler(XMLParser `$parser`, callable|string|null `$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. Entretanto, 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:

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

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open