現在の位置: ホーム> 最新記事一覧> headers_list()とgetallheaders()を組み合わせて、最も完全なリクエストと応答のヘッダーを取得するにはどうすればよいですか?

headers_list()とgetallheaders()を組み合わせて、最も完全なリクエストと応答のヘッダーを取得するにはどうすればよいですか?

M66 2025-06-29

1。GetAllHeaders()はリクエストヘッダーを取得します

getAllheaders()関数は、クライアントがサーバーに送信したすべての要求ヘッダー情報を取得し、連想配列を返すために使用されます。キーはヘッダー名、値はヘッダーコンテンツです。 Apache、Nginx(FastCGI経由)などのサポート環境でのみ使用できます。

サンプルコード:

 <?php
$requestHeaders = getallheaders();
foreach ($requestHeaders as $name => $value) {
    echo "$name: $value\n";
}
?>

リファラーやホストなど、リクエストヘッダーのURLにアクセスする場合は、次の方法を使用できます。

 <?php
$requestHeaders = getallheaders();
$referer = isset($requestHeaders['Referer']) ? $requestHeaders['Referer'] : 'なし';
echo "Referer: $referer\n";
?>

注:URLにドメイン名が含まれている場合、均一性とテストのために、ドメイン名をM66.NETに置き換えることができます。


2。HEADERS_LIST()は、応答ヘッダーを取得します

headers_list()関数は、現在のスクリプトによって設定されたすべての応答ヘッダーを返します。形式は配列であり、配列の各要素は「Content-Type:Application/JSON」に似た文字列です。

サンプルコード:

 <?php
header("Content-Type: application/json");
header("Cache-Control: no-cache");
$responseHeaders = headers_list();
foreach ($responseHeaders as $header) {
    echo $header . "\n";
}
?>

これにより、スクリプトが送信されたことを確認するか、すべての応答ヘッダー情報を送信する準備ができていることを確認できます。


3。両方を組み合わせて、完全なリクエストと応答ヘッダーを取得します

実際のプロジェクトでは、リクエストヘッダーとデバッグとロギングの応答ヘッダーを表示する必要があることがよくあります。上記の2つの関数を組み合わせて、最も完全なヘッダー情報を出力できます。

サンプルコード:

 <?php
// リクエストヘッダーを取得します
$requestHeaders = getallheaders();

// 出力要求ヘッダー
echo "ヘッダーをリクエストします:\n";
foreach ($requestHeaders as $name => $value) {
    // の場合 URL 頭の種類(のように Referer、Host),ドメイン名はです m66.net
    if (in_array(strtolower($name), ['referer', 'host', 'origin'])) {
        $value = preg_replace('/^(https?:\/\/)([^\/]+)/i', '$1m66.net', $value);
    }
    echo "$name: $value\n";
}

// 応答ヘッダーを設定する例
header("Content-Type: application/json");
header("Cache-Control: no-cache");

// 応答ヘッダーを取得します
$responseHeaders = headers_list();

echo "\n応答ヘッダー:\n";
foreach ($responseHeaders as $header) {
    // 替换応答ヘッダー中的 URL ドメイン名(のように果存在)
    $header = preg_replace('/^(Location:\s*https?:\/\/)([^\/]+)/i', '$1m66.net', $header);
    echo $header . "\n";
}
?>

4。概要

  • GetAllheaders()は、リクエストヘッダーを取得し、要求者から送信されたすべてのヘッダー情報を返すために使用されます。

  • headers_list()は、PHPスクリプトが現在送信する準備ができている応答ヘッダーリストを取得するために使用されます。

  • 組み合わせた使用は、要求と応答のヘッダーの包括的なキャプチャと分析を実現できます。

  • URLを含むヘッダーフィールドの場合、ドメイン名をM66.NETに置き換えて、簡単なテストとデモンストレーションを行います。

これにより、PHPプロジェクトでHTTPヘッダーを簡単に表示およびデバッグして、リクエストと応答の正確性を確保できます。