首頁 >後端開發 >php教程 >如何在 PHP 中存取任何 HTTP 請求標頭?

如何在 PHP 中存取任何 HTTP 請求標頭?

Susan Sarandon
Susan Sarandon原創
2024-12-14 14:43:10168瀏覽

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