老版本PHP转义Json里的特殊字符的函数
在给一个App做API,从服务器端的MySQL取出数据,然后生成JSON。数据中有个字段叫content,里面保存了文章内容,含有大量HTML标签,这个字段在转json的时候需要转义,因为有大量的特殊字符会破坏json的结构。
比如这么一段content:
'Loremipsum"dolor"sitamet,consectetur\adipiscingelit.'
则必须要转化为:
Loremipsum\"dolor\"sitamet,\nconsectetur\\adipiscingelit.
如果PHP版本>5.2,json_encode自带转义。如果是旧版本的PHP则可以用下面的函数。
#listfromwww.json.org:(\bbackspace,\fformfeed) publicfunctionescapeJsonString($value){ $escapers=array("\\","/","\"","\n","\r","\t","\x08","\x0c"); $replacements=array("\\\\","\\/","\\\"","\\n","\\r","\\t","\\f","\\b"); $result=str_replace($escapers,$replacements,$value); return$result; }
经常会用到,记录一下,希望对你有帮助。