PHPのcURLでcookieを保持

PHPのcURLでCookieを保存しつつ別のページにアクセス

PHPのcURLで特定サイトにアクセスしてcookieを取得した後に、同じドメインの別なページにcookieを保持したままアクセスする必要性があったので、サンプルコードを書きました。ユーザーエージェントがランダム選択なのは利用上の必要性です。cURLのオプションの書き方とか2個別々とかではなく、もっとスマートに書けたかもしれません(急いで書いたので適当です)。

'http://*****.net/aaa/',
CURLOPT_HEADER => true,
CURLOPT_VERBOSE => true,
CURLOPT_COOKIESESSION => true,
CURLOPT_COOKIEFILE => './cookie.txt',
CURLOPT_COOKIEJAR => './cookie.txt',
CURLOPT_USERAGENT => $userAgents,
CURLOPT_ENCODING => '',

                             CURLOPT_FOLLOWLOCATION => 1,  
                             CURLOPT_RETURNTRANSFER => true,  
                             CURLOPT_HTTPHEADER     => array('Expect:')  
                                    ); 

CURLOPT_FOLLOWLOCATION =/>/ 1,
CURLOPT_RETURNTRANSFER =/>/ true,
CURLOPT_HTTPHEADER =/>/ array('Expect:')
);

$options2 = array(CURLOPT_URL =/>/ 'http://*****.net/bbb/',
CURLOPT_HEADER => true,
CURLOPT_VERBOSE => true,
CURLOPT_COOKIESESSION => true,
CURLOPT_COOKIEFILE => './cookie.txt',
CURLOPT_COOKIEJAR => './cookie.txt',
CURLOPT_USERAGENT => $userAgents,
CURLOPT_ENCODING => '',
CURLOPT_RETURNTRANSFER =>true,
CURLOPT_HEADER => true,

                             CURLOPT_FOLLOWLOCATION => 1,  
                             CURLOPT_RETURNTRANSFER => true,  
                             CURLOPT_HTTPHEADER     => array('Expect:')  
                                    );  

);

$curl = curl_init();
curl_setopt_array($curl, $options);
$result = curl_exec($curl);

curl_setopt_array($curl, $options2);
$result = curl_exec($curl);
curl_close($curl);

?>

いちおうこれで、cookieを使って2番めのURLにアクセスできました。

パーフェクトPHP (PERFECT SERIES 3)posted with カエレバ小川 雄大,柄沢 聡太郎,橋口 誠 技術評論社 2010-11-12