首頁 >後端開發 >php教程 >如何防止 PHP 的 json_encode() 中的正斜線轉義?

如何防止 PHP 的 json_encode() 中的正斜線轉義?

Susan Sarandon
Susan Sarandon原創
2024-11-27 02:28:10523瀏覽

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

在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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn