http://www.banghui.org/11332.html

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

比如这么一段 content:

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

则必须要转化为:

  1. 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;
}

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

-----------------------------------------------------------------------

如何让json_encode不转义斜杠

我在做服务器返回一些数据时需要返回一些地址,但是默认的json_code是会对 / 转义成 \/ 的,所以...

解决办法:

1. 正则替换

1
echo str_replace("\\/", "/",  json_encode("2013/4/21"));

2. 若是php版本是5.4的话:

1
echo json_encode("2011/7/11", JSON_UNESCAPED_SLASHES);

**PHP转义Json里的特殊字符的函数的更多相关文章

  1. JS里关于特殊字符的转义

    重定向的url里含有百分号“%”,遇到了apache 找不到该文件的报错.通过查询相关文档,知道了原来是url里含有特殊字符要转码才能定位到正确的地址.比如"%"要转码为" ...

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

    JSON现在是很常见的处理数据的方式了,但是在使用JSON的时候,有些特殊字符会让我们得到非预期的结果.JSon数据中常见的特殊字符有:引号,正斜杠,反斜杠,换行符号等.下面介绍JSON中的特殊字符该 ...

  3. json格式的字符串转为json对象遇到特殊字符问题解决

    中午做后台发过来的json的时候转为对象,可是有几条数据一直出不来,检查发现json里包含了换行符,造成这种情况的原因可能是编辑部门在编辑的时候打的回车造成的 假设有这样一段json格式的字符串 va ...

  4. 在package.json里面的script设置环境变量,区分开发及生产环境。注意mac与windows的设置方式不一样

    在package.json里面的script设置环境变量,区分开发及生产环境. 注意mac与windows的设置方式不一样. "scripts": { "publish- ...

  5. 请求(Request)的参数(Parameter)里包含特殊字符(#等)的正确处理方式

    遇到一个问题 在一个地址链接(URL)里使用 url?param1=val1&param2=val2 的方式传递参数,结果在获取参数值时发现不是当初设定的值. 具体案例 以特殊字符井号(#)为 ...

  6. JSON中的特殊字符

    使用JSON从后台向前台传输数据的时候,当数据本身含有一些特殊字符,会导致JSON数据的解析出错.这个时候,就需要将JSON中的特殊字符过滤掉. 用下面的方法对即将向前台输出的json字符串进行处理, ...

  7. 【 js 基础 】【 源码学习 】柯里化和箭头函数

    最近在看 redux 的源码,代码结构很简单,主要就是6个文件,其中 index.js 负责将剩余5个文件中定义的方法 export 出来,其他5个文件各自负责一个方法的实现. 大部分代码比较简单,很 ...

  8. js中json法创建对象(json里面的:相当于js里面的=)

    js中json法创建对象(json里面的:相当于js里面的=) 一.总结 json里面的:相当于js里面的= 4.json创建js对象解决命名冲突:多个人为同一个页面写js的话,命名冲突就有可能发生, ...

  9. 编写一个函数来找出所有不带歧义的函数名,也就是 那些只在一个模块里出现过的函数名(erlang)

    erlang程序设计第八章练习题第二题: code:all_loaded()命令会返回一个由{Mod,File}对构成的列表,内含所有Erlang系统 载入的模块.使用内置函数Mod:module_i ...

随机推荐

  1. 安装mysql-5.6版本步骤与卸载

    官网下载完解压后: 1.环境变量配置Path   D:\mysql-5.6.40-winx64\bin(你的mySql5.6的路径到bin)2.找到D:\mysql-5.6.40-winx64文件中的 ...

  2. bzoj 2002

    2002: [Hnoi2010]Bounce 弹飞绵羊 Time Limit: 10 Sec  Memory Limit: 259 MBSubmit: 12203  Solved: 6162[Subm ...

  3. IOS数组的排序和筛选

    1.排序 [self.tableItems sortUsingComparator:^NSComparisonResult(GPBTeacherBrief* obj1, GPBTeacherBrief ...

  4. jquery validate 增加过滤特殊字符的方法

    jQuery.validator.addMethod("specialCharFilter", function(value, element) { var pattern = n ...

  5. Spring boot 集成 mybaits plus(代码生成器)

    源码地址:https://github.com/YANGKANG01/Spring-Boot-Demo 代码生成操作 在pom.xml文件中引入以下包: <!-- mybatisplus与spr ...

  6. 2017 国庆湖南 Day1

    卡特兰数 #include<cstdio> #include<cstring> #include<algorithm> using namespace std; ] ...

  7. [hadoop]hadoop2.6完全分布式环境搭建

    在经过几天的环境搭建,终于搭建成功,其中对于hadoop的具体设置倒是没有碰到很多问题,反而在hadoop各节点之间的通信遇到了问题,而且还反复了很多遍,光虚拟机就重新安装了4.5次,但是当明白了问题 ...

  8. 环境变量ANDROID_SDK_HOME的作用

    默认情况下,开发者创建的AVD(Android Virtual Device)存放在家目录的.android下. 如果是Linux,其路径就是 /home/<your_user_name> ...

  9. SolrJ API 官方文档最佳实践

    以下内容译自Solr Wiki官方文档,版权没有,随意转载. Solrj 是一个访问solr的Java客户端.它提供了一个java接口用于添加更新和查询solr索引.本页面介绍SolrJ最新版本1.4 ...

  10. go 切片

    切片定义 切片是基于数组类型做的一层封装.它非常灵活,可以自动扩容. var a []int //定义一个int类型的空切片 切片初始化, a[start:end]创建一个包括从start到end-1 ...