ホームページ > バックエンド開発 > PHPチュートリアル > PHP での json_encode の使用の概要

PHP での json_encode の使用の概要

不言
リリース: 2023-04-03 15:12:02
オリジナル
2015 人が閲覧しました

この記事では、PHP での json_encode の使用方法を紹介します。これは一定の参考値です。必要な友人はそれを参照できます。お役に立てば幸いです。

このような URL があると仮定します

$url = "https://www.baidu.com?key=你好";$data = ["url" => $url];echo json_encode($data);
ログイン後にコピー

このような出力を取得します

{"url":"https:\/\/www.baidu.com?key=\u4f60\u597d"}
ログイン後にコピー

まず、エンコード後に中国語が 16 進数になっていることがわかりました。これは文字化けではありません。次のように、元の結果を取得するために直接逆シリアル化するだけでよいため、変更されました:

//代码$jsonStr = '{"url":"https:\/\/ 
$data = json_decode($jsonStr);
print_r($data);//输出stdClass Object
(
    [url] => https://www.baidu.com?key=你好)
ログイン後にコピー

これは文字化けしたコードではないことがわかりますので、このトピックについて話しましょう。文字化けではありません、16進数の合計を見ると読み取りに影響します

json_encode

//代码
$url = "https://www.baidu.com?key=你好";$data = ["url" => $url];
echo json_encode($data, JSON_UNESCAPED_UNICODE);
//输出
{"url":"https:\/\/www.baidu.com?key=你好"}
ログイン後にコピー

にパラメータを追加できます 中国語は正常に表示できることがわかりましたが、バックスラッシュが自動的にエスケープされるというもう 1 つの問題があります。文字 \

は非常に不快に見えます。エスケープ文字を削除する方法はありますか?

//代码
$url = " 
$data = ["url" => $url];
echo json_encode($data, JSON_UNESCAPED_SLASHES);
//输出
{"url":"https://www.baidu.com?key=\u4f60\u597d"}
ログイン後にコピー

今度はエスケープです。文字は削除されましたが、中国語の文字は再び 16 になります。システム、エスケープ文字を削除して中国語を正常に表示したいです。

*nix のような権限管理に触発されて、XOR 演算が使用できることがわかりました

//代码$url = " 
$data = ["url" => $url];
echo json_encode($data, JSON_UNESCAPED_UNICODE ^ JSON_UNESCAPED_SLASHES);
//输出
{"url":"https://www.baidu.com?key=你好"}
ログイン後にコピー

仕事を終わらせるために。

さらに、

JSON_UNESCAPED_UNICODE|JSON_UNESCAPED_SLASHES の特殊性により、これらはすべて 1 < < n に渡されるためです。 (nは整数)が得られるので、XOR演算だけでなく直接足し算も使えます

//该等式为true((1<<1) ^ (1<<2)) === ((1<<1) + (1<<2))
ログイン後にコピー

おすすめ関連記事:

PHP詳細名前空間のこの部分の説明

php は、curl を使用して POST アドレスを受け取る方法、つまりインターフェイスを作成する方法

以上がPHP での json_encode の使用の概要の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート