首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 相關知識

PHP 5.2 以下版本 JSON 特殊字元手動轉義函數

     編輯:PHP 相關知識

PHP 5.2 以下版本 JSON 特殊字元手動轉義函數

PHP 5.2+ 內建 json_encode() 自動處理轉義,舊版本需自行實作。本文提供符合 RFC 4627 的轉義函數,處理控制字元、引號、反斜線等。

轉義對照表

實作函數

<?php
function escapeJsonString($value) {
  $escapers = [
    "\\", "/", "\"", "\n", "\r", "\t", "\x08", "\x0c"
  ];
  $replacements = [
    "\\\\", "\\/", "\\\"", "\\n", "\\r", "\\t", "\\b", "\\f"
  ];
  return str_replace($escapers, $replacements, $value);
}

// 測試
$raw = 'Lorem ipsum "dolor" sit amet, consectetur \ adipiscing elit.';
$escaped = escapeJsonString($raw);
echo $escaped;
// 輸出:Lorem ipsum \"dolor\" sit amet, consectetur \\ adipiscing elit.
?>

使用情境

  • 維護舊專案(PHP 5.1 或更早)無法升級。
  • 手動拼接 JSON 字串(不建議,應改用陣列 + json_encode)。
  • 特殊需求:需在 JSON 字串中內嵌已轉義的 JSON 片段。

現代做法(PHP 5.2+)

$data = ['content' => $raw];
echo json_encode($data, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES);
// 直接產生合法 JSON,支援 Unicode 不轉義、斜線不轉義
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved
原始字元轉義後說明
\ (反斜線)\\跳脫字元
/ (斜線)\/JSON 允許轉義正斜線
" (雙引號)\"字串界定符
換行 (LF, \n)\n控制字元
歸位 (CR, \r)\r控制字元
定位符 (Tab, \t)\t控制字元
退位 (Backspace, \b)\b控制字元
換頁 (Form feed, \f)\f控制字元