headers_list

関数の概要

headers_list は、現在のスクリプトで送信予定の HTTP ヘッダーの一覧を取得する PHP 関数です。送信済みのヘッダーのリストを配列で返し、ヘッダーがどのように設定されているかを確認したい場合に役立ちます。主にデバッグや動的にヘッダーを管理する際に使われます。

パラメータの説明

  • パラメータなし: headers_list は引数を取りません。呼び出すだけで現在設定されている全てのヘッダーを取得できます。

戻り値

現在設定されているヘッダーの文字列の配列を返します。各要素は「ヘッダー名: 値」という形式の文字列です。ヘッダーが設定されていない場合は空の配列を返します。

使用例

基本的な使い方

<?php
header("Content-Type: application/json");
header("X-Custom-Header: example");

$headers = headers_list();
print_r($headers);
?>

上記の例では、Content-Type とカスタムヘッダーを設定し、その後 headers_list で取得しています。出力は設定されたヘッダーの配列です。

動的にヘッダーの有無を確認する例

<?php
header("Cache-Control: no-cache");

$headers = headers_list();
if (in_array("Cache-Control: no-cache", $headers)) {
    echo "キャッシュ制御ヘッダーが設定されています。";
} else {
    echo "キャッシュ制御ヘッダーは設定されていません。";
}
?>

設定したヘッダーが現在あるかどうかを配列内検索しています。条件分岐に使うことで柔軟な制御が可能です。

他の処理の前にヘッダーを表示する例

<?php
header("X-Frame-Options: DENY");
header("Server: MyServer");

foreach (headers_list() as $header) {
    echo $header . "<br>";
}
?>

ループで全てのヘッダーを画面表示しています。デバッグや開発時にヘッダー内容を確認したいときに便利です。

関連する関数

  • header() – HTTP ヘッダーを送信する関数。headers_list() で取得できるヘッダーはこの関数で設定されます。
  • headers_sent() – ヘッダーが既に送信されたかどうかをチェックする関数。
  • header_remove() – 既に設定したヘッダーを取り消すための関数。

まとめ

headers_list は現在設定されている HTTP ヘッダーを一覧で取得できる便利な関数です。ヘッダーの設定状況を動的に確認したい場合やデバッグでヘッダー情報を確認する際に役立ちます。引数は不要で使いやすく、header() と組み合わせて利用することがほとんどです。ヘッダー操作を伴う HTTP 処理の制御にぜひ活用してください。