问题:
如何访问任何 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"; } ?>
附加函数:
以上是如何在 PHP 中访问任何 HTTP 请求标头?的详细内容。更多信息请关注PHP中文网其他相关文章!