Maison >développement back-end >Problème PHP >Que faire si une erreur d'analyse php json se produit
Solution à l'erreur d'analyse php json : créez d'abord un exemple de fichier PHP ; puis obtenez manuellement l'erreur spécifique de l'analyse json via la fonction "json_last_error()" et enfin modifiez-la en fonction de l'erreur.
L'environnement d'exploitation de cet article : système Windows7, version PHP7.1, ordinateur DELL G3
Analyse PHP json, xml error
Analyser json
La fonction intégrée php json_decode() peut analyser la chaîne json
Mais parfois, le json qui semble correct est non analysé Renvoie toujours null.
Saviez-vous que json peut échouer à être analysé et que PHP ne générera pas d'invite pour le moment.
Nous devons obtenir manuellement le
function json_decode_siam($string, $mark = false){ $data = json_decode($string, $mark); switch (json_last_error()) { case JSON_ERROR_NONE: return $data; break; case JSON_ERROR_DEPTH: echo ' - 已超出最大堆栈深度'; break; case JSON_ERROR_STATE_MISMATCH: echo ' - JSON无效或格式错误 状态不匹配'; break; case JSON_ERROR_CTRL_CHAR: echo ' - 发现意外的控制字符 可能编码错误'; break; case JSON_ERROR_SYNTAX: echo ' - 错误符号,json格式错误'; break; case JSON_ERROR_UTF8: echo ' - 格式错误的UTF-8字符,可能是错误编码的'; break; default: echo ' - Unknown error'; break; } }via la fonction json_last_error()
Analyser XML
En php, il existe plusieurs façons d'analyser XML, s'appuyant principalement sur différents environnements d'extension.
Ici, je vais parler de la méthode que j'utilise souvent
simplexml_load_string(); simplexml_load_file();
Vous pouvez charger et analyser des chaînes ou des fichiers, et renvoyer des objets Simplexml
Dans cette méthode, si le XML Le format est incorrect, un rapport d'erreur
$str = "不是xml字符串"; $data = simplexml_load_string($str); var_dump($data);
sera généré directement pour obtenir
bool(false) PHP Warning: simplexml_load_string(): Entity: line 1: parser error : Start tag expected, '<' not found in /usercode/file.php on line 4 PHP Warning: simplexml_load_string(): 不是xml字符串 in /usercode/file.php on line 4 PHP Warning: simplexml_load_string(): ^ in /usercode/file.php on line 4
Il s'agit d'une erreur PHP, pas d'une exception, donc try{}catch(){) ne peut pas être utilisé. pour le gérer
Cette partie des connaissances pourra être améliorée à l'avenir (principalement parce que les seniors ont écrit tellement d'articles)
[Apprentissage recommandé : "Tutoriel vidéo PHP "]
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!