ホームページ >バックエンド開発 >PHPチュートリアル >PHP の `json_encode()` でのスラッシュ エスケープを防ぐにはどうすればよいですか?

PHP の `json_encode()` でのスラッシュ エスケープを防ぐにはどうすればよいですか?

Barbara Streisand
Barbara Streisandオリジナル
2024-11-27 18:55:12631ブラウズ

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

json_encode() でのスラッシュのエスケープ

PHP で JSON を操作する場合、エスケープされたスラッシュ (「/」) がよく発生します。エンコード中。これは、JSON_ENCODE() がこれらの文字を自動的にエスケープするためであり、状況によっては問題が発生する可能性があります。

たとえば、json_decode($response)->data を使用して Instagram から取得した JSON データをデコードする場合、次のものが必要になる場合があります。変数を PHP 配列に解析し、データを再構築し、キャッシュ用に再エンコードします。ただし、キャッシュ ファイルを開くと、「http://distilleryimage4.instagram.com/410e7...」のようにスラッシュがエスケープされていることに気づくかもしれません。

この自動エスケープを防ぐには、次のようにします。 PHP 5.4 以降では JSON_UNESCAPED_SLASHES フラグを利用できます:

json_encode($str, JSON_UNESCAPED_SLASHES);

ただし、以前のバージョンを使用している場合は、 PHP では、ニーズに合わせて既存の関数を手動で変更する必要があります。ガイダンスとして https://snippets.dzone.com/posts/show/7487 などのリソースを参照することを検討してください。

これは簡単なデモです:

$url = 'http://www.example.com/';

echo json_encode($url), "\n"; // Output: "http:\/\/www.example.com\/"

echo json_encode($url, JSON_UNESCAPED_SLASHES), "\n"; // Output: "http://www.example.com/"

スラッシュを制御する方法を理解することによってjson_encode() でエスケープすると、JSON 関連の操作中にデータを効果的に管理できます。

以上がPHP の `json_encode()` でのスラッシュ エスケープを防ぐにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。