PHP轉義Json里的特殊字符的函數


在給一個 App 做 API,從服務器端的 MySQL 取出數據,然后生成 JSON。數據中有個字段叫 content,里面保存了文章內容,含有大量 HTML 標簽,這個字段在轉 json 的時候需要轉義,因為有大量的特殊字符會破壞 json 的結構。

比如這么一段 content:

'Lorem ipsum "dolor" sit amet, consectetur \ adipiscing elit.'

則必須要轉化為:

Lorem ipsum \"dolor\" sit amet,\nconsectetur \\ adipiscing elit.

那么有哪些字符是需要轉義的呢?看下圖:

 

如果 PHP 版本 > 5.2,json_encode 自帶轉義。如果是舊版本的 PHP 則可以用下面的函數。

# list from www.json.org: (\b backspace, \f formfeed)
public function escapeJsonString($value) { 
$escapers = array("\\", "/", "\"", "\n", "\r", "\t", "\x08", "\x0c");
$replacements = array("\\\\", "\\/", "\\\"", "\\n", "\\r", "\\t", "\\f", "\\b");
$result = str_replace($escapers, $replacements, $value);
return $result;
}

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM