PHP获取HTTP数据的方法
获取GET数据的方法
使用PHP的内置变量$_GET。GET方法传输的数据都在URL中,比如 "www.register.com:/up.php?name=frogjie&age=24"中的name和age参数。GET传输的数据是urlencode之后的。当请求到达php这边时,php会自动urldecode,并把这些参数以key=>value的方式保存到$_GET数组中。但是GET不适合传输大量的数据,它的值是不能超过 2000 个字符。
获取POST数据的方法
常见的POST的Content-Type有以下3种:
a. application/x-www-form-urlencoded
b. multipart/form-data
c. application/json
对于b类型,目前貌似只能通过$_POST数组得到,key=>value数组。
对于a和c类型,可以使用$_POST, file_get_contents("php://input"),和$GLOBALS['HTTP_RAW_POST_DATA']。file_get_contents("php://input")和$GLOBALS[“HTTP_RAW_POST_DATA”]获取到的东西是一样的。比如如果Content-Type是"application/json",获取到的就是一个json字符串,然后可以自己解析成array并得到里面的数据。但是HTTP_RAW_POST_DATA在php5.6和更高版本已经取消了。而且在使用HTTP_RAW_POST_DATA时候需要在php.ini里面把always_populate_raw_post_data打开,执行效率还不如php://input,所以更推荐使用file_get_contents("php://input")。