Json_encode でバックスラッシュが追加されるのはなぜですか?
ファイル アップロード スクリプト内で json_encode を使用すると、結果の JSON データに予期しないものが含まれることが判明しました。バックスラッシュ。これにより、なぜ json_encode がこれらのエスケープを導入しているのかという疑問が生じます。
JSON_UNESCAPED_SLASHES オプション
その答えは、json_encode 内で使用できる特定のオプションにあります。デフォルトでは、json_encode は、生成された JSON が有効なままであることを保証するために、スラッシュ (バックスラッシュ) を含む特定の文字をエスケープします。ただし、提供されているような URL を扱う場合など、場合によっては、これらのエスケープが望ましくない場合があります。
これに対処するために、JSON_UNESCAPED_SLASHES オプションが PHP バージョン 5.4 で導入されました。このオプションを使用すると、json_encode にスラッシュのエスケープを回避するよう指示し、当面の問題を効果的に解決します。
コードの変更
解決策を実装するには、JSON_UNESCAPED_SLASHES 定数を次のように組み込むだけです。 json_encode 関数内の 2 番目のパラメーター。変更されたコードは次のようになります:
echo json_encode($result, JSON_UNESCAPED_SLASHES); // <-- Adds the JSON_UNESCAPED_SLASHES option
これにより、結果として得られる JSON に不要なバックスラッシュが含まれず、望ましい結果が得られます:
{ "logo_url": "http://mysite.com/uploads/gallery/7f/3b/f65ab8165d_logo.jpeg", "img_id": "54", "feedback": { "message": "File uploaded", "success": true } }
以上が「json_encode」が JSON データにバックスラッシュを追加するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。