PHPの「cURL」を使って、「HTTPステータス・コード」を取得する。

PHPには、cURLの拡張モジュールが用意されていて、これを使うと、いろんなプロトコルで、他のサーバと通信することができます。

PHP は、Daniel Stenbergにより開発されたライブラリlibcurl をサポートします。 このライブラリにより、多くの異なったプロトコルで様々なサーバと接続し、 通信することが可能になります。

PHP Client URL Library: 導入 – Manual

ということで、これを使って、HTTPのステータスコードをチェックする方法をまとめておきます。

事前確認

まずは、この拡張モジュールがインストールされているか、phpinfo()で確認します。

phpinfo

HTTPステータス・コードを確認する

流れとしては、cURLを使って通信してHTTPヘッダを取得し、その情報から、HTTPステータス・コードを抜き出します。

echo get_http_statuscode("http://example.com/");

function get_http_statuscode($url)
{
	$agent = "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1)";

	$ch = curl_init();
       $options = array(
            CURLOPT_URL            => $url,
            CURLOPT_HEADER         => TRUE,
            CURLOPT_NOBODY         => TRUE,
            CURLOPT_RETURNTRANSFER => TRUE,
            CURLOPT_USERAGENT      => $agent);
	curl_setopt_array($ch, $options);
	$header_data = curl_exec($ch);
       curl_close($ch);

	preg_match("/^HTTP\/[01\.]+ ([0-9]{3}[A-Za-z\(\)\- ]+)/",$header_data,$getcode);

  return $getcode[1];
}

参考ページ

カテゴリー: WEB技術のこと   タグ: ,   この投稿のパーマリンク

トラックバック

コメントをどうぞ

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

*

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>