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

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.lryc.cn/news/251053.html

相关文章:

  • 简单理解算法
  • C/C++ 内存管理(2)
  • Net6.0或Net7.0项目升级到Net8.0 并 消除.Net8中SqlSugar的警告
  • 力扣题:字符串的反转-11.22
  • Effective C++(二):对象的初始化
  • 云原生高级--shell自动化脚本备份
  • Spring Boot实现热部署
  • MVCC-
  • 键盘打字盲打练习系列之刻意练习——1
  • 某公司前端笔试题(12.30)
  • Sentinel核心类解读:Node
  • 网络安全领域的12个大语言模型用例
  • 十大网络攻击手段解析,助您建立坚固的网络防线
  • jvm 调优参数
  • OpenCV-Python:计算机视觉介绍
  • uni-app 微信小程序之自定义中间圆形tabbar
  • 使用 Go 构建高性能的命令行工具
  • 微前端框架 qiankun
  • 降序子数组最大和算法分析
  • Kafka常见面试题
  • rman SBT_TAPE NFS disk 模拟NBU带库 FRA
  • 物理世界中的等距3D对抗样本
  • 解决vue3项目打包发布到服务器后访问页面显示空白问题
  • 什么是SMTP服务器?如何配置?
  • el-tabel实现拖拽排序
  • 设计模式-结构型模式之适配器设计模式
  • Android 中的权限
  • 【java智慧工地源码】智慧工地物联网云平台,实现现场各类工况数据采集、存储、分析与应用
  • oracle 19c rac 安装手册
  • sqlMap