在給一個 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; }
經常會用到,記錄一下,希望對你有幫助。