内容简介:这里总结一下,PHP实现get/post请求中的注意点。在我们实现get/post请求的时候,需要注意发送内容的编码格式问题
这里总结一下,PHP实现get/post请求中的注意点。
在我们实现get/post请求的时候,需要注意发送内容的编码格式问题
(1):get请求是将需要发送的数据转化为key=value键值对的形式,然后进行urlencode编码(进行urlencode编码主要是处理特殊的文字,比如说中文或者特殊的符号),然后将处理完成生成的字符串添加到url后面,实现传递参数的目的。这种编码格式就是我们经常提到的application/x-www-form-urlencoded编码格式。我们在写form表单的时候,默认情况下都是按照这种编码格式进行数据编码的。
(2):我们在写表单的时候,经常也会使用multipart/form-data这种编码格式,特别是需要通过form表单上传文件的时候,一定需要该编码格式。这种编码格式是将需要发送的数据以控件为单位进行分割处理,然后添加到http请求中的request body中。
(3):我们进行post请求的时候,如果不需要上传文件,我们一般是不会修改编码格式的,一般还是采用application/x-www-form-urlencoded编码格式。采用这种格式也是讲需要发送的数据处理成key=value格式的字符串,然后添加到http请求中的request body中。
(4):另外我们还经常使用post发送json类型的数据,发送json类型的数据我们需要采用application/json这种编码格式,实现的原理和(3)基本一致,这里就不赘述了。
##使用 PHP 接受get/post请求时的注意点
在写PHP代码的时候,我们已经习惯的使用通过$_GET以及$_POST分别获取get请求以及post请求所传递过来的数据。如果不搞清楚$_GET以及$_POST的原理,可能会在项目中碰钉子的。
经过上面的分析我们知道,get请求发送的数据一定是通过application/x-www-form-urlencoded编码的(get请求只对应一种编码格式),并且是通过url进行数据传递的,那么$_GET一定是通过获取分析请求url,然后解析解码(urldecoded)数据,最后处理成数组实现的。
上面已经提到了,post请求发送的数据一般是通过application/x-www-form-urlencoded编码格式或者multipart/form-data编码格式处理过的。$_POST不会区分来源数据的编码格式,都会统一的进行处理,也就是说$_POST既可以获取application/x-www-form-urlencoded编码的数据,也可以获取multipart/form-data编码的数据。
可能有的同学使用过file_get_conetents(“php://input”)的方式获取过post过来的数据。这里需要注意的是上面的这种方式只能获取不是multipart/form-data编码的数据,其他的编码格式的数据是获取不到的。file_get_conetents(“php://input”)与$_POST之间只有数据采用application/x-www-form-urlencoded编码的时候,两则获取的数据才是”一样”的(这里的一样是有区别的,$_POST得到的是数组形式的数据,而file_get_conetents(“php://input”)获取到的是key=value的字符串)。
接触过微信开发的同学,可能也使用过$GLOBALS[‘HTTP_RAW_POST_DATA’]来接收post请求发送的xml格式的数据,这和file_get_conetents(“php://input”)的方式是完全一样的,但是file_get_conetents(“php://input”)这种方式更好,速度更快,官方推荐使用。并且$GLOBALS[‘HTTP_RAW_POST_DATA’]在PHP7以后就已经废弃了。
使用curl进行post请求的注意点:
我们在使用curl进行post请求的时候,也需要注意编码格式的问题。默认情况下,采用的编码格式是application/x-www-form-urlencoded,并且发送的数据必须是key=value键值对字符串。如果需要发送其他编码格式的数据,需要制定header中的Content-type,并发送相对应格式的数据。
以上所述就是小编给大家介绍的《PHP实现get/post请求中的注意点》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Head First HTML and CSS
Elisabeth Robson、Eric Freeman / O'Reilly Media / 2012-9-8 / USD 39.99
Tired of reading HTML books that only make sense after you're an expert? Then it's about time you picked up Head First HTML and really learned HTML. You want to learn HTML so you can finally create th......一起来看看 《Head First HTML and CSS》 这本书的介绍吧!