使用PHP得到所有的HTTP请求头
来源:互联网 发布:单片机万年历课程设计 编辑:程序博客网 时间:2024/05/06 14:43
作者:老王
在PHP里,想要得到所有的HTTP请求头,可以使用getallheaders方法,不过此方法并不是在任何环境下都存在,比如说,你使用fastcgi方式运行PHP的话,就没有这个方法,所以说我们还需要考虑别的方法,幸运的是$_SERVER里有我们想要的东西,它里面键名以HTTP_开头的就是HTTP请求头:
代码很简单,需要说明的是RFC里明确指出了信息头的名字是不区分大小写的。
不过并不是所有的HTTP请求头都是以HTTP_开头的的键的形式存在于$_SERVER里,比如说Authorization,Content-Length,Content-Type就不是这样,所以说为了取得所有的HTTP请求头,还需要加上下面这段代码:
搞定!
在PHP里,想要得到所有的HTTP请求头,可以使用getallheaders方法,不过此方法并不是在任何环境下都存在,比如说,你使用fastcgi方式运行PHP的话,就没有这个方法,所以说我们还需要考虑别的方法,幸运的是$_SERVER里有我们想要的东西,它里面键名以HTTP_开头的就是HTTP请求头:
$headers = array();
foreach ($_SERVER as $key => $value) {
if ('HTTP_' == substr($key, 0, 5)) {
$headers[str_replace('_', '-', substr($key, 5))] = $value;
}
}
代码很简单,需要说明的是RFC里明确指出了信息头的名字是不区分大小写的。
不过并不是所有的HTTP请求头都是以HTTP_开头的的键的形式存在于$_SERVER里,比如说Authorization,Content-Length,Content-Type就不是这样,所以说为了取得所有的HTTP请求头,还需要加上下面这段代码:
if (isset($_SERVER['PHP_AUTH_DIGEST'])) {
$header['AUTHORIZATION'] = $_SERVER['PHP_AUTH_DIGEST']);
} elseif (isset($_SERVER['PHP_AUTH_USER']) && isset($_SERVER['PHP_AUTH_PW'])) {
$header['AUTHORIZATION'] = base64_encode($_SERVER['PHP_AUTH_USER'] . ':' . $_SERVER['PHP_AUTH_PW']));
}
if (isset($_SERVER['CONTENT_LENGTH'])) {
$header['CONTENT-LENGTH'] = $_SERVER['CONTENT_LENGTH'];
}
if (isset($_SERVER['CONTENT_TYPE'])) {
$header['CONTENT-TYPE'] = $_SERVER['CONTENT_TYPE'];
}
搞定!
- 使用PHP得到所有的HTTP请求头
- 如何用PHP取得所有HTTP请求头
- php获取客户端请求的http头
- 使用代理http请求头的变化
- php使用http请求头实现文件下载
- http常见的请求头
- Http的请求头和响应头
- 【HTTP协议】HTTP请求、请求头、HTTP响应、状态吗、响应头、使用响应头编程
- php设置http请求头信息和响应头信息
- HTTP:HTTP请求头的具体含意
- axios使用拦截器统一处理所有的http请求
- 关于HTTP请求的请求头与响应头含义
- php中使用header函数的http头设置
- php中使用header函数的http头设置
- php中使用header函数的http头设置
- PHP 使用header函数设置HTTP头的示例方法
- 一个关于Http的请求头Expect
- 一个关于Http的请求头Expect
- 蜘蛛来了!
- 关于"Process32First"返回false的问题
- nginx和apache评测比较,十倍?太夸张了
- 我们都是有故事的人
- Nhibernate 中 输入字符串的格式不正确
- 使用PHP得到所有的HTTP请求头
- 从eclipse3.4中启动tomcat6.0.16出现有关“SetPropertiesRule”错误的问题解决方法[转载]
- C++的iostream标准库介绍
- Lua的require的特性
- 使用存储过程读取Oracle中的clob字段的数据
- 提供开放平台网站列表- OpenAPI
- Tomcat报告(一)——Tomcat中SSI的配置
- 按期完成IT项目的10条建议
- FCKEditor编辑器使用集锦