Aller au contenu

xml_set_default_handler()

⚠️ Déprécié : Cette fonction est dépréciée depuis PHP 8.0.0. L'extension Expat XML Parser est considérée comme obsolète. Pour le développement PHP moderne, il est recommandé d'utiliser DOMDocument ou SimpleXML à la place.

La fonction xml_set_default_handler() est une fonction intégrée de PHP appartenant à l'extension Expat XML Parser. Elle définit une fonction personnalisée comme gestionnaire par défaut pour les données de caractères qui ne sont pas capturées par xml_set_character_data_handler(). Cela est utile lorsque vous devez traiter le contenu texte XML brut sans définir de gestionnaire de données de caractères spécifique.

Syntaxe

La syntaxe de la fonction xml_set_default_handler() est la suivante :

php
xml_set_default_handler(resource $parser, callable $handler): bool

$parser est la ressource de l'analyseur XML créée par xml_parser_create(), et $handler est le nom de la fonction personnalisée qui traitera les données de caractères XML. La fonction retourne true en cas de succès ou false en cas d'échec.

Exemples d'utilisation

Examinons un exemple pratique d'utilisation de xml_set_default_handler() en PHP.

Exemple : Définition d'une fonction de gestionnaire par défaut

Supposons que vous ayez une chaîne XML que vous souhaitez analyser à l'aide de l'analyseur Expat XML. Vous pouvez utiliser xml_parser_create() pour créer un nouvel analyseur, définir un gestionnaire par défaut, puis analyser les données :

Définition d'une fonction de gestionnaire par défaut en PHP

php
function handle_default($parser, $data) {
    echo "Default handler received: " . trim($data) . "\n";
}

$xml_parser = xml_parser_create();
xml_set_default_handler($xml_parser, "handle_default");

$xml_data = "<root>Hello World</root>";
if (xml_parse($xml_parser, $xml_data, true) === false) {
    echo "Parse error: " . xml_error_string(xml_get_error_code($xml_parser)) . "\n";
}
xml_parser_free($xml_parser);

Ce code crée un analyseur Expat à l'aide de xml_parser_create(). Il définit ensuite la fonction handle_default() pour capturer les données de caractères qui ne sont pas gérées par xml_set_character_data_handler(). La fonction xml_parse() traite la chaîne XML, déclenchant le gestionnaire par défaut pour le contenu texte. La vérification d'erreur ajoutée utilise xml_get_error_code() et xml_error_string() pour détecter et afficher toute erreur d'analyse. Enfin, xml_parser_free() nettoie la ressource de l'analyseur.

Conclusion

Dans cet article, nous avons discuté de la fonction xml_set_default_handler() de PHP et de son fonctionnement avec l'extension Expat XML Parser. Nous avons expliqué sa syntaxe, clarifié son rôle dans la gestion des données de caractères et fourni un exemple complet avec gestion des erreurs. Notez que l'extension Expat est obsolète et dépréciée depuis PHP 8.0.0. En utilisant xml_set_default_handler(), vous pouvez traiter efficacement le contenu texte XML brut au sein de vos applications PHP, bien que les projets modernes devraient privilégier DOMDocument ou SimpleXML.

Pratique

Que fait le gestionnaire par défaut XML en PHP ?

Trouvez-vous cela utile?

Aperçu dual-run — comparez avec les routes Symfony en production.