読者です 読者をやめる 読者になる 読者になる

PHPでヤフーにログインする

一連の続き。もうほとぼり冷めたし、そうすぐに仕様変えないだろうからと思って公開します。Github使ってたらかっこ良さそうなので、そっちで公開します。よろしくです。
comeonly/yahoobrowser · GitHub
公開してから知りましたが、こんなちょっとしたコードならGistが良かったんですかね。まいっか、いずれちゃんとしたプロジェクトとして公開できるようにがんばろう。

使い方

<?php
//yahoo_browserを置いたパス
require_once 'path/to/yahoo_browser.php'

//Yahoo!のアカウント名
$id   = 'foo';
$pass = 'bar';

$yahoo_browser = new YahooBrowser($id, $pass);
if (empty($yahoo_browser->cookies)) {
    die('ログインできませんでした。');
}
$yahoo_browser->getBody('http://www.yahoo.co.jp');
echo $yahoo_browser->body;
echo $yahoo_browser->cookies;
?>

で、取得できたクッキーをデータベースに保存するなりして使い回せばよいかと。

ソース

問題点

HTTP_Requestはもう古くってHTTP_Request2というものに変わっています。ただ、その影響が結構広範囲なので手が付けれていません。で、PHP 5からクラスの生成には&(アンパーサンド)なくてもポインタを指すらしい(うろ覚え)のでその影響で、HTTP_Request内で幾つか以下の様なエラーが出ます。

Deprecated: Assigning the return value of new by reference is deprecated in /Applications/MAMP/bin/php/php5.3.6/lib/php/HTTP/Request.php on line 794

その際は&(アンパーサンド)を削除してもらえればOKです。

こういうのを誰かにForkしてもらえたら良いのかな。まだGitをよく分かってませんのでいろいろつっこみ頂戴できればありがたいです。時間が取れればHTTP_Request2バージョンも取り組んでみたいですが。