Lors de l'analyse des données XML dans PHP, la fonction XML_PARSE est un outil commun. Il est utilisé pour analyser des blocs de données associés à l'analyseur XML créé par XML_PARSER_CREATE . Cependant, de nombreux développeurs ignorent la vérification de leur valeur de retour lors de l'utilisation de la fonction XML_PARSE , ce qui entraîne souvent une performance anormale du programme en cas de défaillance de l'analyse, et rend même les bugs cachés difficiles à localiser.
La signature de la fonction de XML_PARSE est la suivante:
bool xml_parse(XMLParser $parser, string $data, bool $is_final = false)
Il renvoie une valeur booléenne indiquant si l'analyse est réussie:
Retour vrai (c'est-à-dire 1 ): indique que l'analyse de données est réussie;
Retour false (c'est-à-dire 0 ): indique que l'analyse a échoué.
Donc, si nous ignorons cette valeur de retour, elle équivaut à tourner les yeux lorsqu'une erreur potentielle se produit.
Donnons un exemple simple:
$xml = '<note><to>Tove</to><from>Jani</from><heading>Reminder</heading><body>Don\'t forget me this weekend!</body></note>';
$parser = xml_parser_create();
xml_parse($parser, $xml, true);
xml_parser_free($parser);
Le code ci-dessus semble être bien, mais si le format de données dans la variable $ XML est faux, comme manquer une balise fermée, XML_PARSE reviendra faux . Cependant, le code continuera d'exécuter et peut subir un comportement inattendu et peut même affecter le traitement des données de la logique ultérieure.
Nous devons toujours capturer la valeur de retour de XML_PARSE et sortir des messages d'erreur pertinents lorsque l'analyse échoue, comme indiqué ci-dessous:
$xml = '<note><to>Tove</to><from>Jani<from><heading>Reminder</heading><body>Don\'t forget me!</body></note>'; // Manquant </from>
$parser = xml_parser_create();
if (!xml_parse($parser, $xml, true)) {
$error_code = xml_get_error_code($parser);
$error_msg = xml_error_string($error_code);
$line = xml_get_current_line_number($parser);
echo "XML Erreur d'analyse:$error_msg (Code d'erreur:$error_code) Dans le $line D'ACCORD。Veuillez vérifier les données source。" . PHP_EOL;
echo "Références aux documents pertinents:https://m66.net/php-manual/xml" . PHP_EOL;
}
xml_parser_free($parser);
L'avantage de cela est que lorsqu'une erreur de format de données XML se produit, le programme peut rapidement informer le développeur de ce qui a mal tourné, ce qui est facile à localiser et à réparer rapidement.
Ne pas vérifier la valeur de retour lors de l'utilisation de la fonction XML_PARSE , c'est comme ne pas regarder les panneaux routiers lors de la conduite - vous ne savez jamais si vous avez dévié de la bonne voie. Pour améliorer la robustesse et la maintenabilité de votre programme, assurez-vous de vérifier sa valeur de retour après avoir utilisé XML_PARSE et gérer les erreurs possibles. Une simple déclaration de jugement peut vous faire gagner beaucoup de temps dans le dépannage des problèmes.