如何在PHP中读取任何请求标头

如何在PHP中读取任何请求标头

我应该如何阅读PHP中的任何标题?

例如自定义标题:X-Requested-With


GCT1015
浏览 470回答 3
3回答

LEATH

IF:您只需要一个标题,而不是所有标题,最快的方法是:<?php//&nbsp;Replace&nbsp;XXXXXX_XXXX&nbsp;with&nbsp;the&nbsp;name&nbsp;of&nbsp;the&nbsp;header&nbsp;you&nbsp;need&nbsp;in&nbsp;UPPERCASE&nbsp;(and&nbsp;with&nbsp;'-'&nbsp;replaced&nbsp;by&nbsp;'_')$headerStringValue&nbsp;=&nbsp;$_SERVER['HTTP_XXXXXX_XXXX'];ELSE IF:您将PHP作为Apache模块运行,或者从PHP 5.4开始,使用FastCGI(简单方法):apache_request_headers()<?php $headers&nbsp;=&nbsp;apache_request_headers();foreach&nbsp;($headers&nbsp;as&nbsp;$header&nbsp;=>&nbsp;$value)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;"$header:&nbsp;$value&nbsp;<br&nbsp;/>\n";}ELSE:在任何其他情况下,您都可以使用(userland implementation):<?phpfunction&nbsp;getRequestHeaders()&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;$headers&nbsp;=&nbsp;array(); &nbsp;&nbsp;&nbsp;&nbsp;foreach($_SERVER&nbsp;as&nbsp;$key&nbsp;=>&nbsp;$value)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(substr($key,&nbsp;0,&nbsp;5)&nbsp;<>&nbsp;'HTTP_')&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;continue; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$header&nbsp;=&nbsp;str_replace('&nbsp;',&nbsp;'-',&nbsp;ucwords(str_replace('_',&nbsp;'&nbsp;',&nbsp;strtolower(substr($key,&nbsp;5))))); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$headers[$header]&nbsp;=&nbsp;$value; &nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;$headers;}$headers&nbsp;=&nbsp;getRequestHeaders();foreach&nbsp;($headers&nbsp;as&nbsp;$header&nbsp;=>&nbsp;$value)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;"$header:&nbsp;$value&nbsp;<br&nbsp;/>\n";}另请参阅:getallheaders()&nbsp;- (PHP> = 5.4)跨平台版本apache_request_headers()apache_response_headers()的别名- 获取所有HTTP响应头。headers_list()&nbsp;- 获取要发送的标头列表。

拉丁的传说

$_SERVER['HTTP_X_REQUESTED_WITH']RFC3875,4.1.18:HTTP_如果使用的协议是HTTP,则名称以包含值的元变量从客户端请求头字段读取。HTTP标头字段名称转换为大写,所有出现的-替换为,_并且已经HTTP_预先赋予元变量名称。
打开App,查看更多内容
随时随地看视频慕课网APP