如何编辑网站内容,网站gif素材,自己的电脑做网站空间视屏,昆明网站建设去出发科技公司第一次接触到前后端分离开发#xff0c;需要在后端接收前端ajax提交的json数据#xff0c;开发基于ThinkPHP3.2.3框架。于是一开始习惯性的直接用I()方法接收到前端发送的json数据#xff0c;然后用json_decode()解析发现结果为空#xff01;但是打印出还未解析的值却打印得…第一次接触到前后端分离开发需要在后端接收前端ajax提交的json数据开发基于ThinkPHP3.2.3框架。于是一开始习惯性的直接用I()方法接收到前端发送的json数据然后用json_decode()解析发现结果为空但是打印出还未解析的值却打印得出来。
后来在解决过程中发现原因是ThinkPHP的I()方法默认使用的是htmlspecialchars()方法过滤json字符串中的双引号被转换成了html实体quot;)原来的json数据已经不再是json格式了。所以导致用json_decode()解析不出来数据但是直接打印却可以打印因为浏览器会将quot;)解析为”而json_decode()不会。 代码输出结果如下 后面查清楚原因之后我找了字符串的其他解析方法后面发现只要把I()方法的第二个参数也就是设置过滤字符串方法改为strip_tagsI($str, , strip_tags)strip_tags函数使用来去除HTML标签的就可以解析。 代码输出结果如下 不过还有一个方法是直接用$_POST[]接收也可以解析。