2012年8月23日木曜日

[PHP][cURL] cURLでリダイレクトをたどるようにする

PHPはサイト解析するためにURLから情報を取得する方法がたくさんある。
その一つにcURLというのがある。
cURLではHTTPステータスコードが300系などで既に移転してしまったサイトなどは
リクエストのヘッダにLocationがあればリダイレクトしてたどっていく機能がある。

//URLを指定する
$url='google.co.jp';

//cURLを初期化して使用可能にする
$curl=curl_init();

//オプションにURLを設定する
curl_setopt($curl,CURLOPT_URL,$url);
//Locationをたどる
curl_setopt($curl,CURLOPT_FOLLOWLOCATION,true);
//最大何回リダイレクトをたどるか
curl_setopt($curl,CURLOPT_MAXREDIRS,10);
//リダイレクトの際にヘッダのRefererを自動的に追加させる
curl_setopt($curl,CURLOPT_AUTOREFERER,true);

//URLにアクセスし、結果を表示させる
curl_exec($curl);

//cURLのリソースを解放する
curl_close($curl);

とすればよい。
意外と自分でリダイレクトをたどり続ける処理を書くのは一手間なので、
こういう細かな機能はありがたい。

ポイントとなる関数
  • curl_init ・・・ cURL セッションを初期化する
  • curl_setopt ・・・ cURL 転送用オプションを設定する
  • curl_exec ・・・ cURL セッションを実行する
  • curl_close ・・・ cURL セッションを閉じる

0 件のコメント:

コメントを投稿