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