# xml_set_external_entity_ref_handler

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

xml_set_external_entity_ref_handler — Configure le gestionnaire XML de références externes

### Description

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

Affecte le gestionnaire d'entité externe de l'analyseur XML `parser`.

### 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 `$open_entity_names`,
  string|false `$base`,
  string `$system_id`,
  string|false `$public_id`
  ): bool
  `parser`
    Le parseur XML appelant le gestionnaire.
  `open_entity_names`
    La liste de noms d'entités, séparés par des espaces. Ces entités sont accessibles à l'analyse par cette entité (y compris le nom de l'entité référencée).
  `base`
    La racine pour la résolution de l'identifiant système (`system_id`) de l'entité externe.
  `system_id`
    L'identifiant système tel que spécifié dans la déclaration d'entité
  `public_id`
    L'identifiant public tel que spécifié dans la déclaration d'entité, ou une chaîne vide, si aucune déclaration n'a été spécifiée. L'espace dans l'identifiant public sera normalisé comme spécifié dans les spécifications XML.

  Le gestionnaire devrait retourner `true` si l'entité a été géré, sinon `false`. Quand `false` est retourné l'analyseur XML arrêtera l'analyse et xml_get_error_code() retournera `XML_ERROR_EXTERNAL_ENTITY_HANDLING`.

### 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.
7.3.0 | La valeur de retour de `handler` n'est désormais plus ignoré quand l'extension a été compilé contre libxml. Auparavant, la valeur de retour était ignoré et l'analyse ne s'arrêtait jamais.