Introduction à l'utilisation de json_encode en PHP

不言
Libérer: 2023-04-03 15:12:02
original
2007 Les gens l'ont consulté

Cet article vous présente comment utiliser json_encode en PHP. Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer. J'espère qu'il vous sera utile.

Supposons qu'il existe une telle URL

$url = "https://www.baidu.com?key=你好";$data = ["url" => $url];echo json_encode($data);
Copier après la connexion

et que nous obtenions un tel résultat

{"url":"https:\/\/www.baidu.com?key=\u4f60\u597d"}
Copier après la connexion

Tout d'abord, j'ai découvert que le chinois a été codé et transformé en hexadécimal. Ce n'est pas du code tronqué. C'est juste que la méthode simple et pratique a changé, car il suffit de désérialiser directement pour obtenir le résultat original, comme suit :

//代码$jsonStr = '{"url":"https:\/\/ 
$data = json_decode($jsonStr);
print_r($data);//输出stdClass Object
(
    [url] => https://www.baidu.com?key=你好)
Copier après la connexion

On peut voir que c'est le cas. pas de code tronqué, alors parlons du sujet, même si ce n'est pas du code tronqué, mais voyant que l'hexadécimal affecte toujours la lecture

Vous pouvez ajouter un paramètre dans json_encode

//代码
$url = "https://www.baidu.com?key=你好";$data = ["url" => $url];
echo json_encode($data, JSON_UNESCAPED_UNICODE);
//输出
{"url":"https:\/\/www.baidu.com?key=你好"}
Copier après la connexion

et a constaté que le chinois peut être affiché normalement, mais il y a un autre problème: les barres obliques inverses sont automatiquement. Les caractères d'échappement

semblent assez inconfortables. Existe-t-il un moyen de supprimer les caractères d'échappement

//代码
$url = " 
$data = ["url" => $url];
echo json_encode($data, JSON_UNESCAPED_SLASHES);
//输出
{"url":"https://www.baidu.com?key=\u4f60\u597d"}
Copier après la connexion
< ? 🎜> Maintenant, les caractères d'échappement ont été supprimés, mais les caractères chinois ont à nouveau changé. Ils ont été convertis en hexadécimaux. Je souhaite supprimer les caractères d'échappement et afficher le chinois normalement

Inspiré par une autorisation de type *nix. gestion, j'ai découvert que je pouvais utiliser l'opération XOR

//代码$url = " 
$data = ["url" => $url];
echo json_encode($data, JSON_UNESCAPED_UNICODE ^ JSON_UNESCAPED_SLASHES);
//输出
{"url":"https://www.baidu.com?key=你好"}
Copier après la connexion
Terminé.

De plus,

En raison de la nature particulière des valeurs

|JSON_UNESCAPED_UNICODE, car elles sont toutes obtenues via JSON_UNESCAPED_SLASHES, non seulement les opérations XOR peuvent être utilisées , Vous pouvez également utiliser l'addition directement 1 << n (n为一个整数)

//该等式为true((1<<1) ^ (1<<2)) === ((1<<1) + (1<<2))
Copier après la connexion
Articles connexes recommandés :

Explication détaillée de l'espace de noms en PHP

Que diriez-vous php Utilisez curl pour recevoir l'adresse POST et créer une méthode d'interface

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!

Étiquettes associées:
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal