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
DOMDocumentouSimpleXMLà 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 :
xml_set_default_handler(resource $parser, callable $handler): boolOù $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
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 ?