介绍
这篇文章给大家介绍利用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请求进行获取就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看的到。