[PHP-通信] Webページのステータスコードを取得する
Webページのステータスコードを取得するためのメソッドを書いてみました。
Webサイトの存在確認や、プログラムでヘッダーでステータスコードを送信している場合ちゃんと設定されているか確認するのに便利かも。
返り値は「HTTP/1.1 200 OK」や「HTTP/1.1 404 Not Found」のような感じで返されます。
getStatuscode
<?php /** * ステータスコードを取得する * * @param string $url 対象のURLを指定 * @param int $timeout ステータスの取得を試行する時間を指定(初期値: 10) * @return mixed ステータスコードが取得された場合は文字列、失敗した場合はFALSEを返します */ function getStatuscode($url, $timeout = 10) { // ユーザーエージェントを取得 // PHP4.1以前の場合は多分 $HTTP_SERVER_VARS['HTTP_USER_AGENT'] で取れるかな…? $agent = $_SERVER['HTTP_USER_AGENT']; // cURLセッションの初期化 $ch = curl_init(); // cURL転送用オプションの設定 $options = array(CURLOPT_URL => $url, // 取得する URL CURLOPT_HEADER => true, // ヘッダの内容も出力 CURLOPT_NOBODY => true, // 出力からの本文を削除 CURLOPT_TIMEOUT => $timeout, // 接続の試行を待ち続ける秒数 CURLOPT_RETURNTRANSFER => true, // 返り値を文字列で返す CURLOPT_USERAGENT => $agent // "User-Agent: " ヘッダの内容 ); curl_setopt_array($ch, $options); // cURLセッションを実行 $result = curl_exec($ch); // cURLセッションを閉じる curl_close($ch); // ステータスをステータスコード部分とその他に分割して取得 $status = split("(\r\n|\r|\n){2}",$result, 2); // ステータスコードを返す if($result == false) { return false; } else { return $status[0]; } } ?>
使い方は
<?php $url = "http://momoya.me.land.to/"; $status = getStatuscode($url, 60); if($status == false) { echo "取得できませんでした"; } else { echo $status; } ?>
みたいな感じ。 テキストボックスによる手動入力を可能にした物の動作サンプル→サンプル ■関連ページ HTTPステータスコード一覧
「PHP プログラミング」に関する「本」の商品を自動的に表示しています。
キーワードに関連していない商品は、Amazonがオススメする商品です。気になる物があればどうぞ。
キーワードに関連していない商品は、Amazonがオススメする商品です。気になる物があればどうぞ。
作成日:2008年07月28日(Mon) / 更新日:2010年11月25日(Thu)