资讯

精准传达 • 有效沟通

从品牌网站建设到网络营销策划,从策略到执行的一站式服务

PHP如何获取HTTPPOST中不同格式的数据-创新互联

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

创新互联公司服务项目包括安新网站建设、安新网站制作、安新网页制作以及安新网络营销策划等。多年来,我们专注于互联网行业,利用自身积累的技术优势、行业经验、深度合作伙伴关系等,向广大中小型企业、政府机构等提供互联网行业的解决方案,安新网站推广取得了明显的社会效益与经济效益。目前,我们服务的客户以成都为中心已经辐射到安新省份的部分城市,未来相信会继续扩大服务区域并继续获得客户的支持与信任!

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测试一下

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

没问题,可以接收到

2.使用$GLOBALS['HTTP_RAW_POST_DATA']接收

用postman测试一下

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

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

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

原来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如何获取HTTP POST中不同格式的数据的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注创新互联成都网站设计公司行业资讯频道!

另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


名称栏目:PHP如何获取HTTPPOST中不同格式的数据-创新互联
本文地址:http://cdkjz.cn/article/ceiipp.html
多年建站经验

多一份参考,总有益处

联系快上网,免费获得专属《策划方案》及报价

咨询相关问题或预约面谈,可以通过以下方式与我们联系

大客户专线   成都:13518219792   座机:028-86922220