為什麼 Json_encode 增加反斜線?
在檔案上傳腳本中使用 json_encode 時,發現產生的 JSON 資料包含意外的內容反斜線。這就提出了為什麼 json_encode 會引入這些轉義的問題。
JSON_UNESCAPED_SLASHES 選項
答案在於 json_encode 中可用的特定選項。預設情況下,json_encode 會轉義某些字符,包括斜線(反斜線),以確保產生的 JSON 保持有效。然而,在某些情況下,例如在處理像所提供的 URL 時,這些轉義可能是不可取的。
為了解決這個問題,PHP 5.4 版本中引入了 JSON_UNESCAPED_SLASHES 選項。使用時,此選項指示 json_encode 避免轉義斜杠,從而有效解決手邊的問題。
程式碼修改
要實現此解決方案,只需將 JSON_UNESCAPED_SLASHES 常數合併為json_encode 函數中的第二個參數。修改後的程式碼應如下所示:
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中文網其他相關文章!