2012年8月23日木曜日

[PHP][cURL] cURLでリクエストヘッダを表示させる

PHPでは特定のサイトにアクセスするのに様々な手法があるが、
その中で便利なものの一つがcURLだ。
そのcURLで相手サイトに想定したパラメータなどが渡ってなくて、
思った通りの結果がとれないときがある。
そのときにはリクエストヘッダを出力してみるといいだろう。

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

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

//オプションにURLを設定する
curl_setopt($curl,CURLOPT_URL,$url);
//リクエストヘッダ出力設定
curl_setopt($curl,CURLINFO_HEADER_OUT,true);

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

//リクエストヘッダ出力
echo curl_getinfo($curl,CURLINFO_HEADER_OUT);

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

とすることによってリクエストヘッダを出力させることができる。
ちなみに上記例では

GET / HTTP/1.1
Host: www.google.co.jp
Accept: */*


となっている。
ちなみに余談だが、HTTP1.1ではHostフィールドだけがリクエストヘッダで唯一の必須になっている。

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

0 件のコメント:

コメントを投稿