4

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

4

4 回答 4

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 标头的原始信息[来源]
于 2012-08-19T05:46:16.123 回答
6

我最喜欢的: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";
    }
?>
于 2012-08-19T10:06:05.470 回答
2

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

Cookie 是通过$_COOKIE['varName']. 您可能还想调查一下$_SESSION[]

于 2012-08-19T05:42:56.380 回答
0

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

于 2012-08-19T05:43:29.010 回答