PHP如何获取HTTPPOST中不同格式的数据
这篇文章主要介绍PHP如何获取HTTP POST中不同格式的数据,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!
创新互联公司自2013年创立以来,是专业互联网技术服务公司,拥有项目成都网站设计、成都做网站网站策划,项目实施与项目整合能力。我们以让每一个梦想脱颖而出为使命,1280元水富做网站,已为上家服务,为水富各地企业和个人服务,联系电话:13518219792
HTTP协议中的POST 方法有多中格式的数据协议,在HTTP的head中用不同的Content-type标识.常用的有
application/x-www-form-urlencoded
,这是最常见的,就是from表单的格式.在HTTP的head中是Content-Type: application/x-www-form-urlencoded.
multipart/form-data
,这个是用来上传文件的,在HTTP的head中是Content-Type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW
Raw 这个不是特别常用,传输的数据在HTTP的body中只有一段,不是以键值对的形式存放.在HTTP的head中是Content-Type: application/json
,Content-Type: text
,Content-Type: application/xml
,Content-Type: text/xml
,等等形式
对于Content-Type: application/x-www-form-urlencoded
这种form表单的数据,在php中,使用$_POST['name']
可以直接获取, 没有什么特别的
Content-Type: multipart/form-data;
这种格式的数据,在php中使用$_POST['name']
可以获取字符数据,使用$_FILES['file']
可以获取.
对于Raw这种格式的数据,使用以上两种办法没有办法获取到,需要使用别的手段.
1.使用file_get_contents("php://input")
获取;写一个简单php文件测试一下
用postman测试一下
没问题,可以接收到
2.使用
$GLOBALS['HTTP_RAW_POST_DATA']
接收用postman测试一下
卧槽,竟然出错了,提示没有发现
HTTP_RAW_POST_DATA
这个数组索引,什么鬼.Google一番,在php的官网看到了这样一段话原来
HTTP_RAW_POST_DATA
这个在php5.6中已经被废弃了,在php7.0以后的版本中已经被删除了,我用的php版本为7.2,肯定就出错了好吧,那就老老实实的用
file_get_contents("php://input")
获取吧在实际开发中,一般都是使用框架的,我用thinkphp用比较多,在tp5.0中可以使用Request的getInput()函数获取Raw中的数据
getInput(); } }测试一下
以上是PHP如何获取HTTP POST中不同格式的数据的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注创新互联行业资讯频道!
新闻标题:PHP如何获取HTTPPOST中不同格式的数据
网页网址:http://azwzsj.com/article/jjcpgi.html