当前位置: 首页 > article >正文

ThinkPHP的方法接收json数据问题

第一次接触到前后端分离开发,需要在后端接收前端ajax提交的json数据,开发基于ThinkPHP3.2.3框架。于是一开始习惯性的直接用I()方法接收到前端发送的json数据,然后用json_decode()解析发现结果为空!但是打印出还未解析的值却打印得出来。

后来在解决过程中发现原因是ThinkPHP的I()方法默认使用的是htmlspecialchars()方法过滤,json字符串中的双引号被转换成了html实体("),原来的json数据已经不再是json格式了。所以导致用json_decode()解析不出来数据,但是直接打印却可以打印,因为浏览器会将(")解析为”而json_decode()不会。

代码,输出结果如下:

后面查清楚原因之后,我找了字符串的其他解析方法,后面发现只要把I()方法的第二个参数,也就是设置过滤字符串方法改为strip_tags(I($str, '', 'strip_tags')),strip_tags函数使用来去除HTML标签的,就可以解析。

代码,输出结果如下:

不过还有一个方法是直接用$_POST['']接收,也可以解析。



 


http://www.kler.cn/a/155743.html

相关文章:

  • 图像融合self
  • VMWare虚拟机NAT模式下与外部主机(非宿主机)通信
  • java双向链表解析实现双向链表的创建含代码
  • scala学习记录,Set,Map
  • 【flask开启进程,前端内容图片化并转pdf-会议签到补充】
  • Java集合框架之Map接口
  • 【数据挖掘】国科大刘莹老师数据挖掘课程作业 —— 第三次作业
  • Vue3中teleport如何使用
  • 详解Spring对Mybatis等持久化框架的整合
  • LeetCode - 100. 相同的树 (C语言,二叉树,配图,简单)
  • 代理模式介绍(静态代理、jdk动态代理、cglib代理)
  • 栈和队列的OJ题——14.用栈实现队列
  • Azure Machine Learning - Azure AI 搜索中的索引器
  • 【限时免费】20天拿下华为OD笔试之【哈希集合】2023B-明明的随机数【欧弟算法】全网注释最详细分类最全的华为OD真题题解
  • Qt/QML编程学习之心得:如何添加资源文件到QML工程(十一)
  • 【书信,推荐信】【推荐节日活动】
  • QML中常见布局方法
  • 最小生成树(简单讲解,通俗易懂)
  • 笔迹检验(四):笔迹检验的程序和方法
  • PyQt6 QComboBox下拉组合框控件
  • STM32串口接收不定长数据(接收中断+超时判断)
  • C++ Easyx 三子棋
  • PostgreSQL中常用的几种连接池总结及更新
  • 阻止事件默认行为
  • MySQL之存储引擎
  • Java开发实战(一):Java环境安装