Pourquoi Json_encode ajoute-t-il des barres obliques inverses ?
Lors de l'utilisation de json_encode dans un script de téléchargement de fichier, il a été découvert que les données JSON résultantes contiennent des des barres obliques inverses. Cela soulève la question de savoir pourquoi json_encode introduit ces échappements.
L'option JSON_UNESCAPED_SLASHES
La réponse réside dans une option spécifique disponible dans json_encode. Par défaut, json_encode échappe certains caractères, y compris les barres obliques (antislashes), pour garantir que le JSON généré reste valide. Cependant, dans certains cas, comme lorsqu'il s'agit d'URL comme celle fournie, ces échappements peuvent être indésirables.
Pour résoudre ce problème, l'option JSON_UNESCAPED_SLASHES a été introduite dans PHP version 5.4. Lorsqu'elle est utilisée, cette option demande à json_encode d'éviter d'échapper des barres obliques, résolvant ainsi efficacement le problème en question.
Modification du code
Pour implémenter la solution, incorporez simplement la constante JSON_UNESCAPED_SLASHES comme un deuxième paramètre dans la fonction json_encode. Le code modifié devrait ressembler à ceci :
echo json_encode($result, JSON_UNESCAPED_SLASHES); // <-- Adds the JSON_UNESCAPED_SLASHES option
Cela garantit que le JSON résultant ne contient aucune barre oblique inverse inutile, fournissant ainsi le résultat souhaité :
{ "logo_url": "http://mysite.com/uploads/gallery/7f/3b/f65ab8165d_logo.jpeg", "img_id": "54", "feedback": { "message": "File uploaded", "success": true } }
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!