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

时间:2012-08-19 05:41:22

标签: php

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

4 个答案:

答案 0 :(得分:8)

get_headers()功能正是您所需要的。如引用

  

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

简单示例:

$url = 'http://www.example.com';   
print_r(get_headers($url));   

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

  

数组(

[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 )

更新

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

echo $_SERVER['HTTP_USER_AGENT'];

类似地,

  • REQUEST_METHOD:提供HTTP请求方法,如GET,HEAD,Put,Post
  • HTTP_HOST:提供主机信息
  • HTTP_COOKIE:提供有关Cookie标头的原始信息 [Source]

答案 1 :(得分: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";
    }
?>

答案 2 :(得分:2)

您可以使用$_GET['requestName']$_POST['requestName'](或$_REQUEST['requestName']获取GET或POST)来获取这些内容。

Cookie来自$_COOKIE['varName']。您可能还想查看$_SESSION[]

答案 3 :(得分:0)

是。查看$ _POST,$ _GET和$ _COOKIE超全局。它们是包含标题信息的数组 http://www.tizag.com/phpT/postget.php