Maison > développement back-end > tutoriel php > 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
Libérer: 2024-10-22 22:05:02
original
1057 Les gens l'ont consulté

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>
Copier après la connexion

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>
Copier après la connexion

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!

source:php
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal