POST提交的不同的数据格式PHP怎么接收

(1):HTTP中的POST方式传递的数据类型是多种多样的,比如说text/xml,soap等等

(2):PHP默认情况下只能识别application/x-www.form-urlencoded数据类型(标准数据类型),对于这种数据类型的数据,直接通过$_POST系统函数就可以获取的到。但是对于不满足上述数据类型的数据,使用$_POST是获取不到的。

(3):PHP获取非application/x-www.form-urlencoded数据类型的数据的时候,需要通过php提供的$GLOBALS[‘HTTP_RAW_POST_DATA’]或者file_get_contents(“php://input”)的方式进行获取(这两种获取数据的方式只能获取非标准数据类型的数据,并不能获取标准数据类型的数据,所以前后端一定要约定好)

(4):file_get_contents(“php://input”)与$GLOBALS[‘HTTP_RAW_POST_DATA’]获取到的数据其实是一样的,两者之间的区别在与$GLOBALS[‘HTTP_RAW_POST_DATA’]依赖php.ini中额外的设置,并且系统资源占用高,推荐使用php://input的方式进行数据的获取,并且高版本的PHP只支持file_get_contents(“php://input”)

注意:application/x-www-form-urlencoded这种数据类型,应该是最常见的 POST 提交数据的方式。 浏览器的原生 form 表单,如果不设置 enctype 属性,那么最终就会以 application/x-www-form-urlencoded 方式提交数据。很多时候,我们用 Ajax 提交数据时,也是使用这种方式。例如 JQuery 中的 Ajax Content-Type 默认值都是 application/x-www-form-urlencoded。这也就解释了为什么对于js传递的json数据,php可以通过$_POST直接获取了

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值