場合によっては、ページのコンテンツを返さずに、アクセスされたページの http ステータス コードを取得する必要があることがよくあります。このような機能はどのようにして実現できるのでしょうか?以下のキーコードをご覧ください:
[php]
関数 GetHttpStatusCode($url){
$curl =curl_init();
curl_setopt($curl,CURLOPT_URL,$url);//コンテンツ URL を取得します
curl_setopt($curl,CURLOPT_HEADER,1);//http ヘッダー情報を取得します
curl_setopt($curl,CURLOPT_NOBODY,1);//HTML 本文情報を返しません
curl_setopt($curl,CURLOPT_RETURTRANSFER,1);//データ ストリームを返します。直接出力はありません
curl_setopt($curl,CURLOPT_TIMEOUT,30) //タイムアウト期間、単位は秒
curl_exec($curl);
$rtn=curl_getinfo($curl,CURLINFO_HTTP_CODE);
curl_close($curl);
戻る
}
$url="http://www.BkJia.com";
echo GetHttpStatusCode($url);
?>
関数 GetHttpStatusCode($url){
$curl =curl_init();
curl_setopt($curl,CURLOPT_URL,$url);//コンテンツのURLを取得します
curl_setopt($curl,CURLOPT_HEADER,1);//httpヘッダー情報を取得します
curl_setopt($curl,CURLOPT_NOBODY,1);//HTML本文情報を返しません
curl_setopt($curl,CURLOPT_RETURNTRANSFER,1);//データストリームを返します。直接出力はありません
curl_setopt($curl,CURLOPT_TIMEOUT,30); //タイムアウト期間、単位は秒
curl_exec($curl);
$rtn=curl_getinfo($curl,CURLINFO_HTTP_CODE);
curl_close($curl);
$rtn を返します;
}
$url="http://www.BkJia.com";
echo GetHttpStatusCode($url);
?>
Baidu に正常にアクセスできれば、上記のコードを実行した結果は当然 200 になります。
curlの詳しい使い方は、http://cn2.php.net/manual/zh/ref.curl.php
を参照してください。
魂の浄土より抜粋