今日の人気記事

  1. 配列を文字列に変換する - implode()
  2. 文字列をファイルに書き込む - file_put_contents()
  3. ヒアドキュメント
  4. 論理値 - boolean
  5. OS情報を取得 - php_uname()

HTTPヘッダーを取得 - get_headers()

当ページのリンクには広告が含まれています。

Webプログラミング言語PHPで、HTTPヘッダーを取得する関数 get_headers()を紹介します。

get_headers関数

array get_headers ( string $url [, int $format = 0 ] )
引数
$url
URLを指定します。
$format
返り値のフォーマットを指定します。
引数を指定しない場合は0。
0は通常の配列、0以外(例えば、1)を指定すると返り値が連想配列になります。
返り値
HTTPヘッダーの配列を返します。

サンプルコード

HTTPヘッダーを取得するサンプルコードです。

get_headers(URL);
<?php
$url = "http://www.apple.com";
$http_header = get_headers($url);
var_dump($http_header);
?>

出力は、配列に格納されます。Webサーバーの情報や文字コードなどさまざまな情報が取得できます。

array(8) {
  [0]=>
  string(15) "HTTP/1.0 200 OK"
  [1]=>
  string(14) "Server: Apache"
  [2]=>
  string(38) "Content-Type: text/html; charset=UTF-8"
  [3]=>
  string(26) "Cache-Control: max-age=228"
  [4]=>
  string(38) "Expires: Mon, 10 Jun 2013 23:23:04 GMT"
  [5]=>
  string(35) "Date: Mon, 10 Jun 2013 23:19:16 GMT"
  [6]=>
  string(21) "Content-Length: 16129"
  [7]=>
  string(17) "Connection: close"
}

第2引数に0以外の数字(ここでは、1)を指定するとHTTPヘッダーが、連想配列として取得できます。

$http_header = get_headers(URL,1);
<?php
$url = 'http://www.apple.com/';
$http_header = get_headers($url,1);
var_dump($http_header);
?>
array(8) {
  [0]=>
  string(15) "HTTP/1.0 200 OK"
  ["Server"]=>
  string(6) "Apache"
  ["Content-Type"]=>
  string(24) "text/html; charset=UTF-8"
  ["Cache-Control"]=>
  string(11) "max-age=278"
  ["Expires"]=>
  string(29) "Mon, 10 Jun 2013 23:23:54 GMT"
  ["Date"]=>
  string(29) "Mon, 10 Jun 2013 23:19:16 GMT"
  ["Content-Length"]=>
  string(5) "16129"
  ["Connection"]=>
  string(5) "close"
}

連想配列の方が使いやすいですね。例えば、HTTPヘッダーから"Server"情報のみを取得したい場合は、以下のようなコードでOKです。

<?php
$url = 'http://www.apple.com/';
$http_header = get_headers($url,1);
echo $http_header["Server"];
?>

HTTPヘッダーのうち、Server情報のみが出力されます。

Apache

これは便利ですね。

※Sever情報を公開していないWebサーバーからは取得できません。

ネットワーク の人気記事

  1. IPアドレスからホスト名を取得 - gethostbyaddr()
  2. URLのクエリ文字列を変数に - parse_str()

関連記事(一部広告含む)