Maison  >  Article  >  développement back-end  >  Introduction à l'utilisation de json_encode en PHP

Introduction à l'utilisation de json_encode en PHP

不言
不言original
2018-08-03 14:59:442010parcourir

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);

et que nous obtenions un tel résultat

{"url":"https:\/\/www.baidu.com?key=\u4f60\u597d"}

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=你好)

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=你好"}

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"}
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=你好"}
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))
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!

Déclaration:
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