【PHP8.x】get_headers関数の使い方

作成日: 更新日:

get_headers関数は、指定されたURLのHTTPヘッダー情報を取得する関数です。この関数は、ウェブサーバーがHTTPリクエストに対してどのような応答を返しているか、その詳細な情報を確認する際に利用されます。具体的には、ウェブページの最終更新日時、コンテンツの種類、リダイレクトの有無、サーバーの種類、クッキー情報など、ウェブサーバーが送信する様々なメタデータを配列として取得することができます。

例えば、特定のURLが別の場所へリダイレクトされているかどうか(Locationヘッダー)、または取得しようとしているコンテンツのタイプが画像なのかHTMLなのか(Content-Typeヘッダー)などをプログラムで確認したい場合に非常に役立ちます。関数は成功すると、各ヘッダーラインを要素とする配列を返します。配列のキーは、通常は連番の数値インデックスですが、ヘッダーフィールド名(例: 'Content-Type')をキーとして使用することも可能です。もしURLへのアクセスに失敗したり、無効なURLが指定されたりした場合には、falseを返して処理の失敗を示します。

この関数は内部的にHTTPリクエストを発行するため、ネットワーク接続が必須であり、対象のウェブサーバーの応答速度によっては実行に時間がかかることがあります。また、より詳細なリクエストの制御(例えば、ユーザーエージェントの指定、タイムアウト設定、POSTリクエストの送信など)を行いたい場合は、stream_context_create()関数と組み合わせて使用することで、その挙動をカスタマイズすることが可能です。ウェブサイトの状態監視やリンクチェック、APIの予備調査など、幅広い場面で活用できる便利な関数です。

基本的な使い方

構文(syntax)

<?php
$url = "https://www.example.com";
$headers = get_headers($url);
?>

引数(parameters)

string $url, bool $associative = false, ?resource $context = null

  • string $url: ヘッダー情報を取得したいURLを指定する文字列
  • bool $associative = false: trueを指定すると、連想配列形式でヘッダー情報を返します。デフォルトはfalseで、数値インデックスの配列で返します。
  • ?resource $context = null: リソースコンテキストを指定します。指定しない場合は、デフォルトのコンテキストが使用されます。

戻り値(return)

array|false

HTTPヘッダー情報の連想配列、またはリクエストの失敗を示すfalseが返されます。

【PHP8.x】get_headers関数の使い方 | いっしー@Webエンジニア