json_encode() でのスラッシュのエスケープ
PHP で JSON データを操作する場合、スラッシュ ("/ ") は json_encode() を使用してエスケープされています。これは、外部ソースから JSON データを取得し、それを再構築するために配列に解析するときに発生する可能性があります。エスケープされたスラッシュは、変更しないままにするとデータの整合性に影響を与える可能性があります。
このエスケープ動作を無効にするために、PHP 5.4 以降では JSON_UNESCAPED_SLASHES フラグが提供されています。このフラグを json_encode() 関数に追加すると、スラッシュの自動エスケープを防ぐことができます。
$results = json_encode($results, JSON_UNESCAPED_SLASHES);
この変更により、JSON データ内のスラッシュがエスケープされず、データの整合性が維持されます。ファイルのキャッシュ後。
重要注:
JSON_UNESCAPED_SLASHES を使用する前に、その意味を理解することが重要です。このフラグは、セキュリティ上のリスクを引き起こす可能性があるため、Web/HTML コンテキストでは使用しないでください。ただし、CLI または非 HTTP JSON 通信環境では適用できる場合があります。 Web/HTML アプリケーションの読みやすさのためにスラッシュのエスケープが不可欠な場合は、代替メソッドを使用して処理することを検討してください。
例:
次の例を考えてみましょう。ここで、JSON データは取得され、解析されます:
$instagrams = json_decode($response)->data;
再構築後、データは再エンコードされ、キャッシュ:
file_put_contents($cache, json_encode($results));
結果のキャッシュ ファイルには、JSON_UNESCAPED_SLASHES なしでエスケープされたスラッシュが含まれます。ただし、このフラグを json_encode() 関数に追加すると、スラッシュがエスケープされずに保存されます。
file_put_contents($cache, json_encode($results, JSON_UNESCAPED_SLASHES));
JSON_UNESCAPED_SLASHES フラグを理解して利用することで、JSON データ内のスラッシュのエスケープ動作を制御し、その動作を確実にすることができます。整合性を確保し、潜在的なデータ破損を回避します。
以上がPHP の `json_encode()` でスラッシュ エスケープを防ぐ方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。