PHP如何获取HTTP POST中不同格式的数据

  介绍

这篇文章主要介绍PHP如何获取HTTP POST中不同格式的数据,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

HTTP协议中后的方法有多中格式的数据协议,在HTTP的头中用不同的内容类型标识。常用的有

<代码>应用程序/x-www-form-urlencoded> 内容类型:应用程序/x-www-form-urlencoded。

<代码>多部分/格式> 内容类型:多部分/格式;边界=猈ebKitFormBoundary7MA4YWxkTrZu0gW

生这个不是特别常用,传输的数据在HTTP的身体中只有一段,不是以键值对的形式存放。在HTTP的头中是<代码> - type: application/json代码,<代码>内容类型:文本,<代码> - type: application/xml ,<代码>的content - type: text/xml>

对于<代码>内容类型:应用程序/x-www-form-urlencoded 这种形式表单的数据,在php中,使用<代码> $ _POST[& # 39;名字# 39;]>

<代码>内容类型:多部分/格式;这种格式的数据,在php中使用<代码> $ _POST[& # 39;名字# 39;]> 带有_file美元[& # 39;文件# 39;]>

对于生这种格式的数据,使用以上两种办法没有办法获取到,需要使用别的手段。

1。使用<代码> file_get_contents (“php://input") 获取;写一个简单php文件测试一下

& lt; php ?   $测试=file_get_contents (“php://input");   echo $测试;

用邮差测试一下

 PHP如何获取HTTP POST中不同格式的数据

没问题,可以接收到

2。使用<代码>全局美元[& # 39;HTTP_RAW_POST_DATA& # 39;] 接收

& lt; PHP ?   $=$全局测试[& # 39;HTTP_RAW_POST_DATA& # 39;];   echo $测试;

用邮差测试一下

 PHP如何获取HTTP POST中不同格式的数据

卧槽,竟然出错了,提示没有发现<代码> HTTP_RAW_POST_DATA 这个数组索引,什么鬼。谷歌一番,在php的官网看到了这样一段话

 php如何获取HTTP POST中不同格式的数据

原来<代码> HTTP_RAW_POST_DATA 这个在php5.6中已经被废弃了,在php7.0以后的版本中已经被删除了,我用的php版本为7.2,肯定就出错了

好吧,那就老老实实的用<代码> file_get_contents (“php://input") 获取吧

在实际开发中,一般都是使用框架的,我用thinkphp用比较多,在tp5.0中可以使用演示了getInput()请求的函数获生中取的数据

& lt; php ?      名称空间的应用程序\指数\控制器;      使用认为\请求;      类指数   {   公共函数指数(请求美元请求)   {   演示了getInput();回声请求→美元   }   }

测试一下

 PHP如何获取HTTP POST中不同格式的数据

以上是PHP如何获取HTTP POST中不同格式的数据的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注行业资讯频道!

PHP如何获取HTTP POST中不同格式的数据