MagpieRSSのハマリどころ

はてブグラフでははてなブックマークRSSを利用しています。
RSSを取得して、解析をするのに、いままでxml.phpというのを利用していたのですが、
たとえば、YahooのはてブRSSなど、件数が1000件を越えるものになると、一切パース出来なくなってしまい、
結局MagpieRSSを利用しました。

URLではなく(キャッシュなどの)RSSファイルをパースする

今回、キャッシュ機能はPEARのCache_Liteを利用しているので、通常の利用方法の
チャネル(URL)指定→パースという流れだと使えませんでした。
なので、

$rss_data = file_get_contents("(はてブRSSのURL)");
$rss_hash = new MagpieRSS($rss_data,"utf-8");

と言う方法でRSSをパースするようにしました。

PEAR::Image::Graphのハマリどころ

今回、グラフを作成するに当たり、PEARのImage::Graphを利用しました。
他にも色々検討したのですが、とりあえずフルPHPで書けるというところで、
まあいいか、という気持ちで使い出したのですが、結構苦労しました。

一番苦労したのは、

いまいちコードのイメージが沸かない

これが一番辛かった。
このライブラリはグラフのインスタンスの生成方法
がかなりたくさんあり、どれが正しいのかが良くわかりませんでした。
後述のサンプルサイトにも、多種多様のサンプルの記述方法があり、
非常に悩みました。

PHP5.x系?だとフォントが使えない

家のテストサーバーもPHP5.2系なのですが、家も実際のサーバーでも
setFontメソッドが上手く動きませんでした。
なぜかsazanamiフォントとかを使っても、フォントが全て黄色になって
しまいました。フォントのColorをsetしても全く変化無し。
こいつのせいで丸一日ほどつぶしてしまいました。
一言で言うと相性が悪い、とでも言うのでしょうか。
ちなみに別案件でPHP4系だと上手く別フォントが使えているので、
PHP4だと動くと思います。

はてブグラフの構成

ヒマなのでサービスの構成でも書いていきます。

など
次は備忘録ついでにハマリどころでも書こうかな。

はてなブックマークグラフ公開

はてなブックマークをグラフ化してみたサービス(はてブグラフ)を公開しました。

  • TODO(残作業)
    • 全体検索設置(中)
    • 各ページにユーザー数表示(軽)
    • PEAR::Image::GraphをJpGraphに変更(重)
    • 未来の日にちのTOTALを0にする(中)
    • ブログパーツなど(?)