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


Posted in PHP onJune 08, 2015

在给一个 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;
}

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

PHP 相关文章推荐
第十二节 类的自动加载 [12]
Oct 09 PHP
给apache2.2加上mod_encoding模块後 php5.2.0 处理url出现bug
Apr 12 PHP
PHP中防止SQL注入实现代码
Feb 19 PHP
php数组函数序列之array_pop() - 删除数组中的最后一个元素
Nov 07 PHP
php mysql_real_escape_string函数用法与实例教程
Sep 30 PHP
PHP 5.5 创建和验证哈希最简单的方法详解
Nov 07 PHP
php+mysqli预处理技术实现添加、修改及删除多条数据的方法
Jan 30 PHP
php制作简单模版引擎
Apr 07 PHP
浅析Laravel5中队列的配置及使用
Aug 04 PHP
Thinkphp5.0框架视图view的循环标签用法示例
Oct 12 PHP
thinkphp5实现微信扫码支付
Dec 23 PHP
laravel5.6 框架邮件队列database驱动简单demo示例
Jan 26 PHP
php查询whois信息的方法
Jun 08 #PHP
Yii获取当前url和域名的方法
Jun 08 #PHP
在Linux系统的服务器上隐藏PHP版本号的方法
Jun 06 #PHP
phpcms手机内容页面添加上一篇和下一篇
Jun 05 #PHP
DEDECMS首页调用图片集里的多张图片
Jun 05 #PHP
php比较相似字符串的方法
Jun 05 #PHP
浅谈PHP接收POST数据方式
Jun 05 #PHP
You might like
实用函数7
2007/11/08 PHP
php打开文件fopen函数的使用说明
2013/07/05 PHP
PHP之uniqid()函数用法
2014/11/03 PHP
PHP+jQuery+Ajax实现用户登录与退出
2015/04/27 PHP
php需登录的文件上传管理系统
2020/03/21 PHP
PHP中Enum(枚举)用法实例详解
2015/12/07 PHP
php模板引擎技术简单实现
2016/03/15 PHP
Zend Framework教程之Zend_Form组件实现表单提交并显示错误提示的方法
2016/03/21 PHP
PHP生成静态HTML文档实现代码
2016/06/23 PHP
Laravel框架实现的上传图片到七牛功能详解
2019/09/06 PHP
PHP如何获取Cookie并实现模拟登录
2020/07/16 PHP
jquery的extend和fn.extend的使用说明
2011/01/09 Javascript
js实现iframe框架取值的方法(兼容IE,firefox,chrome等)
2015/11/26 Javascript
JavaScript中用let语句声明作用域的用法讲解
2016/05/20 Javascript
关于Vue.js一些问题和思考学习笔记(2)
2016/12/02 Javascript
使用UrlConnection实现后台模拟http请求的简单实例
2017/01/04 Javascript
js获取浏览器和屏幕的各种宽度高度
2017/02/22 Javascript
简单了解vue中父子组件如何相互传递值(基础向)
2019/07/12 Javascript
vue+Element中table表格实现可编辑(select下拉框)
2020/05/21 Javascript
一文读懂vue动态属性数据绑定(v-bind指令)
2020/07/20 Javascript
Python运算符重载用法实例
2015/05/28 Python
Python实现批量修改文件名实例
2015/07/08 Python
Python selenium 父子、兄弟、相邻节点定位方式详解
2016/09/15 Python
python实现自动登录后台管理系统
2018/10/18 Python
django中related_name的用法说明
2020/05/20 Python
解决python cv2.imread 读取中文路径的图片返回为None的问题
2020/06/02 Python
Pycharm安装第三方库失败解决方案
2020/11/17 Python
英国领先的独立时装店:Van Mildert
2019/10/28 全球购物
公益活动邀请函
2014/02/05 职场文书
艺术设计专业个人求职信
2014/04/10 职场文书
应届生求职信
2014/05/31 职场文书
迎新晚会策划方案
2014/06/13 职场文书
2014年残疾人工作总结
2014/12/06 职场文书
补充协议书
2015/01/28 职场文书
2015年民兵整组工作总结
2015/07/24 职场文书
python数据库批量插入数据的实现(executemany的使用)
2021/04/30 Python