関数の概要
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 処理の制御にぜひ活用してください。
