博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
**PHP转义Json里的特殊字符的函数
阅读量:6289 次
发布时间:2019-06-22

本文共 1011 字,大约阅读时间需要 3 分钟。

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

 

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

比如这么一段 content:

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

则必须要转化为:

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

那么有哪些字符是需要转义的呢?看下图:

如果  版本 > 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_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);

转载地址:http://zezta.baihongyu.com/

你可能感兴趣的文章
Linux的三种特殊权限
查看>>
PKU 2068 Nim
查看>>
测试基础-1.1
查看>>
15、响应式布局和BootStrap 全局CSS样式知识点总结-part2
查看>>
【MySQL】通过Binary Log简单实现数据回滚(一)
查看>>
255.Spring Boot+Spring Security:使用md5加密
查看>>
记录一款SQLite数据库管理软件
查看>>
将Oracle的语言从中文修改为英文
查看>>
matlab编译错误代码中英对照
查看>>
Python 元组
查看>>
hbase(ERROR: org.apache.hadoop.hbase.ipc.ServerNotRunningYetException: Server is not running yet)
查看>>
[ZJOI2010]count 数字计数
查看>>
多校4 1001 Olympiad
查看>>
hdu1085 Holding Bin-Laden Captive!
查看>>
hdu4811 Ball
查看>>
Docker实践--搭建Yapi测试平台
查看>>
align-content 与 align-items 区别
查看>>
a链接中,name属性的应用
查看>>
Java精选笔记_多线程(创建、生命周期及状态转换、调度、同步、通信)
查看>>
java Session统计在线用户,并且显示在线用户
查看>>