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サーバーからは取得できません。