Maison > développement back-end > tutoriel php > Comment empêcher la barre oblique de s'échapper dans « json_encode() » de PHP ?

Comment empêcher la barre oblique de s'échapper dans « json_encode() » de PHP ?

Susan Sarandon
Libérer: 2024-11-27 02:28:10
original
490 Les gens l'ont consulté

How to Prevent Forward Slash Escaping in PHP's `json_encode()`?

Échapper aux barres obliques dans json_encode()

Lorsque vous travaillez avec des données JSON en PHP, vous pouvez rencontrer une situation où des barres obliques ("/ ") sont échappés à l'aide de json_encode(). Cela peut se produire lors de l'extraction de données JSON à partir de sources externes et de leur analyse dans un tableau à des fins de restructuration. Les barres obliques échappées peuvent affecter l'intégrité des données si elles ne sont pas modifiées.

Pour désactiver ce comportement d'échappement, PHP 5.4 et versions ultérieures fournissent l'indicateur JSON_UNESCAPED_SLASHES. En ajoutant cet indicateur à votre fonction json_encode(), vous pouvez empêcher l'échappement automatique des barres obliques.

$results = json_encode($results, JSON_UNESCAPED_SLASHES);
Copier après la connexion

Cette modification garantira que les barres obliques de vos données JSON ne restent pas échappées, préservant ainsi l'intégrité des données. après la mise en cache des fichiers.

Important Remarque :

Avant d'utiliser JSON_UNESCAPED_SLASHES, il est crucial de comprendre ses implications. Cet indicateur ne doit pas être utilisé dans des contextes Web/HTML car il peut présenter des risques de sécurité. Cependant, il peut être applicable dans des environnements de communication CLI ou JSON non HTTP. Si l'échappement des barres obliques est essentiel pour la lisibilité dans les applications Web/HTML, envisagez d'utiliser des méthodes alternatives pour le gérer.

Exemple :

Considérez l'exemple suivant, où les données JSON est récupérée et analysée :

$instagrams = json_decode($response)->data;
Copier après la connexion

Après restructuration, les données sont réencodées et cached :

file_put_contents($cache, json_encode($results));
Copier après la connexion

Le fichier de cache résultant contiendrait des barres obliques échappées sans JSON_UNESCAPED_SLASHES. Cependant, l'ajout de l'indicateur à la fonction json_encode() préserverait les barres obliques sans échappement :

file_put_contents($cache, json_encode($results, JSON_UNESCAPED_SLASHES));
Copier après la connexion

En comprenant et en utilisant l'indicateur JSON_UNESCAPED_SLASHES, vous pouvez contrôler le comportement d'échappement des barres obliques dans les données JSON, garantissant ainsi son l'intégrité et éviter la corruption potentielle des données.

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.cn
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