欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

php获取客户端及服务器相关信息

程序员文章站 2022-06-11 19:13:53
...
  1. $headers = array();
  2. foreach ($_SERVER as $key => $value) {
  3. if ('HTTP_' == substr($key, 0, 5)) {
  4. $headers[str_replace('_', '-', substr($key, 5))] = $value;
  5. }
  6. }
  7. ?>
复制代码

说明:RFC里明确指出了信息头的名字是不区分大小写的。

不过并不是所有的HTTP请求头都是以HTTP_开头的的键的形式存在与$_SERVER里,比如说Authorization,Content-Length,Content-Type就不是这样,所以说为了取得所有的HTTP请求头,还需要加上下面这段代码:

  1. if (isset($_SERVER['PHP_AUTH_DIGEST'])) {
  2. $header['AUTHORIZATION'] = $_SERVER['PHP_AUTH_DIGEST']);
  3. } elseif (isset($_SERVER['PHP_AUTH_USER']) && isset($_SERVER['PHP_AUTH_PW'])) {
  4. $header['AUTHORIZATION'] = base64_encode($_SERVER['PHP_AUTH_USER'] . ':' . $_SERVER['PHP_AUTH_PW']));
  5. }
  6. if (isset($_SERVER['CONTENT_LENGTH'])) {
  7. $header['CONTENT-LENGTH'] = $_SERVER['CONTENT_LENGTH'];
  8. }
  9. if (isset($_SERVER['CONTENT_TYPE'])) {
  10. $header['CONTENT-TYPE'] = $_SERVER['CONTENT_TYPE'];
  11. }
  12. ?>
复制代码