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")。

posted @ 2018-10-25 22:11  Frogjie  阅读(866)  评论(0编辑  收藏  举报