とりわけcURLを使う方法は結構メジャーである。
cURLには通信のための様々なオプション設定ができるが、
クッキーを扱うためのオプションももちろんある。
相手からクッキーを受け取りたいときは
//URLを指定する
$url='www.google.co.jp';
//テンポラリファイルを作成する
$cookie=tempnam(sys_get_temp_dir(),'cookie_');
//cURLを初期化して使用可能にする
$curl=curl_init();
//オプションにURLを設定する
curl_setopt($curl,CURLOPT_URL,$url);
//クッキーを書き込むファイルを指定
curl_setopt($curl,CURLOPT_COOKIEJAR,$cookie);
//URLにアクセスし、結果を表示させる
curl_exec($curl);
//cURLのリソースを解放する
curl_close($curl);
//クッキーを表示する
echo file_get_contents($cookie);
//テンポラリファイルを削除
unlink($cookie);
となる。
ちなみにクッキーを受け取ったファイルの中身は
# Netscape HTTP Cookie File
# http://www.netscape.com/newsref/std/cookie_spec.html
# This file was generated by libcurl! Edit at your own risk.
ドメイン ドメインクッキーフラグ パス セキュアフラグ 有効期限 名前 値
ドメイン ドメインクッキーフラグ パス セキュアフラグ 有効期限 名前 値
ドメイン ドメインクッキーフラグ パス セキュアフラグ 有効期限 名前 値
となっている。
逆に相手にクッキーを送信したい場合は
//URLを指定する
$url='www.google.co.jp';
//クッキー情報の入ったファイルへのパス
$cookie='./cookie.txt';
//cURLを初期化して使用可能にする
$curl=curl_init();
//オプションにURLを設定する
curl_setopt($curl,CURLOPT_URL,$url);
//クッキーを読み込むファイルを指定
curl_setopt($curl,CURLOPT_COOKIEFILE,$cookie);
//URLにアクセスし、結果を表示させる
curl_exec($curl);
//cURLのリソースを解放する
curl_close($curl);
となる。
ちなみにpixivへの自動ログインを作るためには、
このクッキーの扱いをマスターするのが必須になってる。
ポイントとなる関数
- curl_init ・・・ cURL セッションを初期化する
- curl_setopt ・・・ cURL 転送用オプションを設定する
- curl_exec ・・・ cURL セッションを実行する
- curl_close ・・・ cURL セッションを閉じる
0 件のコメント:
コメントを投稿