PHPでサイトにログインし、クッキー(cookie)を取得する。

とあるサイトにログインしてデータを取り出したいと思ったので、
とりあえず、ログインしてクッキーを取得する部分を作ってみた。


PEARのHTTP_Requestを使用します。
また、接続先がhttpsであればopensslモジュールが必要です。


HTTP_Requestは
#pear install HTTP_Request
でインストールできます。


opensslがインストールされているかどうかは
#php -m
で確認できます。opensslが表示されなければインストールされていません。
--with-openssl[=DIR]を指定してphpをコンパイルしてください。

<?php
require_once("HTTP/Request.php");

$cookies = array();

$http = new HTTP_Request();

$http->setURL("https://www.xxxx.jp/login");
$http->setMethod(HTTP_REQUEST_METHOD_POST);

//POSTするデータ
$http->addPostData("name", "xxxx");
$http->addPostData("password", "xxxx");

$http->sendRequest();

if(count($http->getResponseCookies())){
        $cookies = $http->getResponseCookies();
}

//↓コメントアウトを外せばヘッダーとページソースが表示されます。
//print_r($http->getResponseHeader());
//echo $http->getResponseBody();


var_dump($cookies);//クッキーを表示します。
?>