利用PHP怎么对HTTP请求进行获取

  介绍

这篇文章给大家介绍利用PHP怎么对HTTP请求进行获取,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

<强> 1。取得请求行:方法、URI、协议

可以从超级变量$ _SERVER中获得,三个变量的值如下:

$ _SERVER [& # 39; REQUEST_METHOD& # 39;] # 39;公司,& # 39;。$ _SERVER [& # 39; REQUEST_URI& # 39;] # 39;公司,& # 39;。$ _SERVER [& # 39; SERVER_PROTOCOL& # 39;]干净\ r \ n";

<强> 2。取得所有头

PHP有个内置函数getallheader(),是apache_request_headers()函数的一个别名,可以将HTTP请求的所有头以数组形式返回。但这个函数只能工作在Apache下,如果换了Nginx或者命令行,会直接报函数不存在的错误。

比较通用的方法是,从超级变量$ _SERVER中提取出来,有关头的键值都是“HTTP_”开头的,可以根据此特点取得所有的头。

具体代码如下:

function  get_all_headers (), {,   数组$ headers =, ();,      foreach ($ _SERVER  as  key 美元;=祝辞,美元值),{,   如果(substr(美元)键,,0,,5),===,& # 39;HTTP_& # 39;), {,   key 美元;=,substr(键,美元,5),,   函数key 美元;=,(关键);,   key 美元;=,str_replace(& # 39; _ # 39;,, & # 39;, & # 39;,,美元键),,   函数key 美元;=,(关键);,   key 美元;=,str_replace(& # 39;, & # 39;,, & # 39; & # 39;,,美元键),,      头美元(美元关键),=,美元价值;,   },   },      return 头;美元,   }

<强> 3。取得身体

官方提供了一种获取请求身体的方法,即:

file_get_contents (& # 39; php://输入# 39;)

<强> 4。最终完整代码如下:

/* *,   *,获取HTTP请求原文,   *,@return  string    */,   function  get_http_raw (), {,   时间=美元raw  & # 39; & # 39;,,//,(1),请求行,   _SERVER raw 美元。=,[& # 39;REQUEST_METHOD& # 39;] # 39;公司,& # 39;。$ _SERVER [& # 39; REQUEST_URI& # 39;] # 39;公司,& # 39;。$ _SERVER [& # 39; SERVER_PROTOCOL& # 39;]干净\ r \ n",,//,(2),请求Headers    foreach ($ _SERVER  as  key 美元;=祝辞,美元值),{,   如果(substr(美元)键,,0,,5),===,& # 39;HTTP_& # 39;), {,   key 美元;=,substr(键,美元,5),,   key 美元;=,str_replace(& # 39; _ # 39;,, & # 39; & # 39;,,美元键),,      raw 美元。=,美元关键# 39;公司:,& # 39;美元价值!”。\ r \ n",,   },   },//,(3),空行,   raw 美元。=,“\ r \ n",,//,(4),请求Body    raw 美元。=,file_get_contents (& # 39; php://输入# 39;),,      return 原材料;美元,   }

关于利用PHP怎么对HTTP请求进行获取就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看的到。

利用PHP怎么对HTTP请求进行获取