1. ホーム
  2. php

[解決済み] PHP で任意のリクエストヘッダを読み取るには

2022-02-12 01:18:22

質問事項

PHPでヘッダーを読むにはどうしたらよいですか?

例えば、カスタムヘッダーです。 X-Requested-With .

解決方法は?

IF の代わりに、単一のヘッダーが必要です。 すべて ヘッダを作成する場合、最も手っ取り早い方法は

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


ELSE IF : PHP を Apache モジュールとして、あるいは PHP 5.4 以降は FastCGI (シンプルな方法) を使って動かしています。

apache_request_headers()

<?php
$headers = apache_request_headers();

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


ELSE: それ以外の場合は、(ユーザーランドの実装)を使用することができます。

<?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() - 送信するヘッダーのリストを取得します。