Maison  >  Article  >  développement back-end  >  Comment réparer JSON_ERROR_SYNTAX lors du décodage des problèmes de caractères cachés ?

Comment réparer JSON_ERROR_SYNTAX lors du décodage des problèmes de caractères cachés ?

Barbara Streisand
Barbara Streisandoriginal
2024-10-22 22:05:02954parcourir

How to Fix JSON_ERROR_SYNTAX When Decoding Hidden Character Issues?

JSON_ERROR_SYNTAX : découvrez les problèmes de caractères cachés

Lorsque vous rencontrez l'erreur déroutante JSON_ERROR_SYNTAX lors du décodage de JSON à l'aide de json_decode(), malgré l'assurance des formateurs en ligne que le JSON est valide, il est crucial de rechercher les caractères cachés.

La fonction json_decode() de PHP est stricte et rejettera le JSON avec toutes les erreurs de syntaxe, y compris les caractères de contrôle invisibles ou l'encodage UTF-8 invalide. Pour résoudre ce problème, implémentez le code suivant :

<code class="php">for ($i = 0; $i <= 31; ++$i) { 
    $data = str_replace(chr($i), "", $data); 
}
$data = str_replace(chr(127), "", $data);</code>

Cette boucle élimine les caractères de contrôle (codes ASCII 0-31 et 127). De plus, vérifiez la « marque d'ordre des octets » (0xEF 0xBB 0xBF) qui peut préfixer le JSON et supprimez-la :

<code class="php">if (0 === strpos(bin2hex($data), 'efbbbf')) {
   $data = substr($data, 3);
}</code>

Après avoir nettoyé les données JSON, décodez-les à l'aide de json_decode(). Cette approche globale résoudra de nombreuses instances de l'erreur JSON_ERROR_SYNTAX, offrant ainsi une expérience de décodage plus significative.

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