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

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

Susan Sarandon
發布: 2024-11-27 02:28:10
原創
511 人瀏覽過

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

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板