-
- $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'];
- }
- ?>
复制代码
|