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