首页 >后端开发 >php教程 >如何在 PHP 中访问任何 HTTP 请求标头?

如何在 PHP 中访问任何 HTTP 请求标头?

Susan Sarandon
Susan Sarandon原创
2024-12-14 14:43:10166浏览

How Can I Access Any HTTP Request Header in PHP?

如何在 PHP 中读取任何请求标头

问题:

如何访问任何 HTTP 标头,包括自定义标头标头,在PHP?

答案:

PHP 中有多种读取请求标头的方法,具体取决于您的具体要求:

单个标头检索:

如果您只需要检索单个标头值,请使用以下语法:

<?php
// Replace XXXXXX_XXXX with the name of the header you need in UPPERCASE (and with '-' replaced by '_')
$headerStringValue = $_SERVER['HTTP_XXXXXX_XXXX'];
?>

Apache 模块或 FastCGI (PHP 5.4 ):

如果 PHP 作为 Apache 模块运行或在 PHP 5.4 或更高版本中使用 FastCGI ,您可以使用 apache_request_headers()函数:

<?php
$headers = apache_request_headers();

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

后备方法:

在所有其他情况下,您可以使用以下用户态实现:

<?php
function getRequestHeaders() {
    $headers = array();
    foreach($_SERVER as $key => $value) {
        if (substr($key, 0, 5) != 'HTTP_') {
            continue;
        }
        $header = str_replace(' ', '-', ucwords(str_replace('_', ' ', strtolower(substr($key, 5)))));
        $headers[$header] = $value;
    }
    return $headers;
}

$headers = getRequestHeaders();

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

附加函数:

  • getallheaders() (PHP 5.4 ):apache_request_headers() 的别名。
  • apache_response_headers():获取所有 HTTP 响应标头。
  • headers_list():获取要添加的标题列表已发送。

以上是如何在 PHP 中访问任何 HTTP 请求标头?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn