background image

认证功能,这个变量便是认证的类型。

PHP 里,想要得到所有的 HTTP 请求头,可以使用 getallheaders 方法,不过此方法并不

是在任何环境下都存在,比如说,你使用

fastcgi 方式运行 PHP 的话,就没有这个方法,所

以说我们还需要考虑别的方法,幸运的是

$_SERVER 里有我们想要的东西,它里面键名以

HTTP_开头的就是 HTTP 请求头:

代码如下

:

<?php

$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 请求头,还需要加上下面这段代码:

代码如下

:

<?php

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'])) {