Maison  >  Article  >  développement back-end  >  Que faire si une erreur d'analyse php json se produit

Que faire si une erreur d'analyse php json se produit

藏色散人
藏色散人original
2021-03-05 09:13:413737parcourir

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.

Que faire si une erreur d'analyse php json se produit

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, &#39;<&#39; 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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn