老版本PHP转义Json里的特殊字符的函数

在给一个 App 做 API,从服务器端的 MySQL 取出数据,然后生成 JSON。数据中有个字段叫 content,里面保存了文章内容,含有大量 HTML 标签,这个字段在转 json 的时候需要转义,因为有大量的特殊字符会破坏 json 的结构。

比如这么一段 content:

[php] view plaincopy

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

则必须要转化为:

[php] view plaincopy

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

如果 PHP 版本 > 5.2,json_encode 自带转义。如果是旧版本的 PHP 则可以用下面的函数。

[php] view plaincopy

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

经常会用到,记录一下,希望对你有帮助。

时间: 2024-11-13 03:35:44

老版本PHP转义Json里的特殊字符的函数的相关文章

**PHP转义Json里的特殊字符的函数

http://www.banghui.org/11332.html 在给一个 App 做 API,从服务器端的 MySQL 取出数据,然后生成 JSON.数据中有个字段叫 content,里面保存了文章内容,含有大量 HTML 标签,这个字段在转 json 的时候需要转义,因为有大量的特殊字符会破坏 json 的结构. 比如这么一段 content: 'Lorem ipsum "dolor" sit amet, consectetur \ adipiscing elit.' 则必须要转

*Bash:如何用bash 转义 URL里的特殊字符,让其在sed不会产生歧义?

我们在工作中,经常需要使用sed替换.增加文本中的URL.但是,我们经常会遇到URL中的特殊字符在sed中产生歧义,以至于在编写bash脚本的时候,花去大量时间测试.那么什么特殊字符会产生歧义呢? #这些都需要转义&, |, \, /, ^, *, (, ), [, ], {, }, `,? 其中,以“&,/,?“为最主要需要转移的.例如: [[email protected] test]$ url="http://www.baidu.com/cgi-bin?a=dasdfd&a

iOS 去除JSON里的转义符

iOS 去除JSON里的转义符 今天帮朋友弄这个问题,json返回全都是带'\'的,于是要去掉这个反斜杠,但是OC里面的'\'是转义符,不能直接用@"\"之类的表示,一顿搜索之后,找到了OC对转义字符的表示方法,如下: \a - Sound alert\b - 退格\f - Form feed\n - 换行\r - 回车\t - 水平制表符\v - 垂直制表符\\ - 反斜杠\" - 双引号\' - 单引号 那么知道如何表示'\',去掉这个就是一个遍历的事了.代码如下: NS

JS里关于特殊字符的转义

重定向的url里含有百分号“%”,遇到了apache 找不到该文件的报错.通过查询相关文档,知道了原来是url里含有特殊字符要转码才能定位到正确的地址.比如"%"要转码为"%25","&"要转码为"%26",等等. 在javascript脚本里,有现成的转码函数可以调用,有3个:1,采用ISO Latin字符集对指定的字符串进行编码.所有的空格符.标点符号.特殊字符以及其他非ASCII字符都将被转化成%xx格式的字符编

.net 过滤json等字符串里的特殊字符

JSON现在是很常见的处理数据的方式了,但是在使用JSON的时候,有些特殊字符会让我们得到非预期的结果.JSon数据中常见的特殊字符有:引号,正斜杠,反斜杠,换行符号等.下面介绍JSON中的特殊字符该如何去掉的方法 使用JSON从后台向前台传输数据的时候,当数据本身含有一些特殊字符,会导致JSON数据的解析出错.这个时候,就需要将JSON中的特殊字符过滤掉. 用下面的方法对即将向前台输出的json字符串进行处理,可以解决键盘上能输入的所有特殊字符问题. 1 /// <summary> 2 //

Javascript转义字符串中的特殊字符处理

2014-08-08 Web应用系统中,客户端发送请求到服务器,请求中的字符串参数,在被序列化成json过程中有些特殊字符会被空格代, 导致传递到服务器端再解析的时候,原本的输入参数就会被改变. 目前遇到的特殊字符有加号(+)与连接号(&). 临时解决方案: 前端:定义一个函数,在函数中预先处理, 1 function EncodeURIFilter(str) { 2 if(str != null && str != "") { 3 str = str.repl

解决eWebEditor老版本在IE新版本下按钮失效问题一劳永逸的办法

单位里有一套新闻发布系统,是很早以前的了,一直在用,eWebEditor是什么版本的也搞不清了,但肯定是老版本. 前一段时间也出了问题,在IE8上按钮失效,经过百度之后,解决方案几乎全都一样,都是五花八门的判断IE版本然后执行对应的匿名方法. 出问题的是editor.js中的这句:if (element.YUSERONCLICK) eval(element.YUSERONCLICK + "anonymous()"); 而解决方案,无一例外的都是两种 1. 1 if(navigator.

快速入门系列--WebAPI--04在老版本MVC4下的调整

WebAPI是建立在MVC和WCF的基础上的,原来微软老是喜欢封装的很多,这次终于愿意将http编程模型的相关细节暴露给我们了.在之前的介绍中,基本上都基于.NET 4.5之后版本,其System.Net.Http程序集非常的丰富,而老版本的则相对较弱.在WebAPI v1.0(和ASP.NET MVC4在一起的版本)很多的类和接口并不存在,同时对Task异步编程(ApiController默认提供异步执行方法)的支持还有一些欠缺(缺少不少方便的扩展方法),在使用时会有一些需要注意的地方,由于一

cenos下安装MySQL最新版(5.7.18)记录。附卸载老版本过程

首先说明:老版本数据库没有数据,所以无数据备份过程.如果你在升级数据库过程里,需要备份数据,请另外自行处理. 1.下载最新版MySQL.解压待用 wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.18-linux-glibc2.5-x86_64.tar.gz #下载tar -zxvf mysql-5.7.18-linux-glibc2.5-x86_64.tar.gz #解压cp -r mysql-5.7.18-linux-g