Maison >développement back-end >tutoriel php >Pourquoi `json_decode()` de PHP renvoie-t-il NULL avec un JSON apparemment valide ?
PHP json_decode() renvoie NULL lorsqu'il est fourni JSON apparemment valide : une résolution
Lors d'une tentative de décodage d'un objet JSON stocké dans un texte brut utilisant la fonction json_decode() de PHP, certains utilisateurs ont rencontré le problème où la fonction renvoie NULL alors que le JSON semble valide lorsqu'il est testé avec Validateurs JSON.
En examinant l'extrait de code fourni, l'objet JSON semble bien formaté. Cependant, il est possible que le fichier contienne des caractères invisibles ou des caractères non UTF-8 pouvant interférer avec le processus de décodage.
Pour résoudre ce problème, une solution suggérée par les utilisateurs consiste à utiliser la fonction preg_replace() de PHP pour supprimez tous les caractères non UTF-8 de la chaîne JSON. Le code modifié ressemblerait à ceci :
$json_object = json_decode( preg_replace('/[\x00-\x1F\x80-\xFF]/', '', $json_string), true );
Cette expression régulière remplacera tous les caractères en dehors de la plage de caractères UTF-8 par une chaîne vide, garantissant que la chaîne JSON ne contient que des caractères valides.
En appliquant cette modification, la fonction json_decode() de PHP devrait être capable de décoder avec succès l'objet JSON et de renvoyer un objet ou un tableau PHP représentant les données JSON. Il a été rapporté que cette solution fonctionne efficacement pour de nombreux utilisateurs confrontés à ce problème.
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!