# xml_set_unparsed_entity_decl_handler

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

xml_set_unparsed_entity_decl_handler — Affecte les gestionnaires d'entités non déclarées

### Description

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

Affecte les gestionnaires d'entités non déclarées de l'analyseur XML `parser`.

Le gestionnaire `parser` sera appelé si l'analyseur XML rencontre une déclaration d'entité externe avec une déclaration de NDATA, comme suit :

    <!ENTITY <parameter>name</parameter> {<parameter>publicId</parameter> | <parameter>systemId</parameter>}
            NDATA <parameter>notationName</parameter>

Reportez-vous à la section » des spécifications XML 1.0 pour connaître les notations des entités externes.

### Liste de paramètres

`parser`

  Le parseur XML.

`handler`

  Si `null` est passé, le gestionnaire est réinitialisé à son état par défaut.

  Avertissement

  Une chaîne vide réinitialisera également le gestionnaire, cependant cette fonctionnalité est dépréciée à partir de PHP 8.4.0.

  Si `handler` est un callable, l'appelable est défini comme le gestionnaire.

  Si `handler` est une string, il peut s'agir du nom d'une méthode d'un objet défini avec xml_set_object().

  Avertissement

  Cette fonctionnalité est dépréciée à partir de PHP 8.4.0.

  Avertissement

  À partir de PHP 8.4.0, la validité du callable est vérifiée lors de la configuration du gestionnaire, et non au moment de son appel. Cela signifie que xml_set_object() doit être appelé avant de définir une méthode sous forme de chaîne comme rappel. Cependant, comme ce comportement est également déprécié à partir de PHP 8.4.0, il est recommandé d'utiliser un callable approprié pour la méthode.

  La signature du gestionnaire doit être :

  handler(
  XMLParser `$parser`,
  string `$entity_name`,
  string|false `$base`,
  string `$system_id`,
  string|false `$public_id`,
  string|false `$notation_name`
  ): void
  `parser`
    Le parseur XML appelant le gestionnaire.
  `entity_name`
    Le nom de l'entité qui va être définie.
  `base`
    La racine pour la résolution de l'identifiant système (`system_id`) de l'entité externe.
  `system_id`
    Identifiant système pour cette entité externe.
  `public_id`
    Identifiant public pour cette entité externe.
  `notation_name`
    Nom de la notation de cette entité. (Voir xml_set_notation_decl_handler()).

### Valeurs de retour

Retourne toujours `true`.

### Historique

Version | Description
--- | ---
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` attend une instance de XMLParser désormais; auparavent, une resource `xml` était attendue.