こんな感じでやってみた。参考にしたのはfslashtのサアラたん日記と、ソースファイル中にもあるレッツPHP!。ただこれを実行するとブラウザの方がログアウトしてしまう・・・。
次のステップはおうちサーバへの組み込みですな。
function write_hatenadiary($account , $password , $body){ //オリジナルソース http://php.s3.to/tt/cook.phps require_once "HTTP/Request.php"; //ログイン // ログインURLセット $req =& new HTTP_Request("http://www.hatena.ne.jp/register"); // フォームなのでPOST $req->setMethod(HTTP_REQUEST_METHOD_POST); // POSTデータセット $req->addPostData("mode", "login"); $req->addPostData("key", $account); $req->addPostData("password", $password); $req->addPostData("autologin", "on"); // 送信 $response = $req->sendRequest(); if (PEAR::isError($response)) { // エラー表示 echo $req->getMessage(); } else { // クッキーを配列で取得 $loginCookies = $req->getResponseCookies(); } //書き込み $req =& new HTTP_Request("http://d.hatena.ne.jp/".$account."/edit"); $req->setMethod(HTTP_REQUEST_METHOD_POST); // POSTデータセット $req->addPostData("mode","enter"); $req->addPostData("dummy", "1"); $req->addPostData("timestamp", ""); $req->addPostData("date", "21000101"); $req->addPostData("year", date("Y")); $req->addPostData("month", date("m")); $req->addPostData("day", date("d")); $req->addPostData("title", ""); $req->addPostData("body", $body); $req->addPostData("edit", "この内容を登録する"); // クッキーをセット foreach ($loginCookies as $cookie) { $req->addCookie($cookie['name'], $cookie['value']); } // 送信 $response = $req->sendRequest(); if (PEAR::isError($response)) { // エラー表示 $response2 = $req->getMessage(); echo $response2; } }