php:显示从浏览器收到的标头

roo*_*unk 4 php

因此,当浏览器向服务器发出HTTP请求时,它的形式为一些标题(获取/发布,cookie,主机,用户代理等).有没有办法可以在PHP脚本中阅读和显示它们?是的,$ _GET,$ _POST和$ _COOKIE都没问题.我正在寻找其余的标题信息.例如http://pgl.yoyo.org/http/browser-headers.php谢谢.

Sta*_*arx 8

get_headers()函数就是你要找的.如引述

get_headers - 获取服务器发送的所有标头以响应HTTP请求

简单的例子:

$url = 'http://www.example.com';   
print_r(get_headers($url));   
Run Code Online (Sandbox Code Playgroud)

输出服务器发送的所有信息:

阵列(

[0] => HTTP/1.1 200 OK
[1] => Date: Sat, 29 May 2004 12:28:13 GMT
[2] => Server: Apache/1.3.27 (Unix)  (Red-Hat/Linux)
[3] => Last-Modified: Wed, 08 Jan 2003 23:11:55 GMT
[4] => ETag: "3f80f-1b6-3e1cb03b"
[5] => Accept-Ranges: bytes
[6] => Content-Length: 438
[7] => Connection: close
[8] => Content-Type: text/html )
Run Code Online (Sandbox Code Playgroud)

更新

要接收浏览器发送的信息,可以从$_SERVER超级全局变量访问它们.例如,以下代码段提供了所有与浏览器相关的信息.

echo $_SERVER['HTTP_USER_AGENT'];
Run Code Online (Sandbox Code Playgroud)

同样的,

  • REQUEST_METHOD :给出HTTP请求方法,如GET,HEAD,Put,Post
  • HTTP_HOST:给出HOST信息
  • HTTP_COOKIE:给出有关Cookie标头的原始信息[来源]


Ela*_*amb 5

我最喜欢的:http://php.net/manual/en/function.apache-request-headers.php

从当前请求获取所有HTTP请求标头.

<?php
    $headers = apache_request_headers();

    foreach ($headers as $header => $value) {
        echo "$header: $value <br />\n";
    }
?>
Run Code Online (Sandbox Code Playgroud)