Home > ブログ > MagpieRSS 使ってみた

MagpieRSS 使ってみた

最近いろんなWebサービスで遊ぶようになったら、場所が拡散しすぎて何が何やらわからんようになっていたので、ちょっと Feed 引っ張ってきて統合表示した。最初から iddy.jp 使っとけ、っていう話なんだけど、ここに表示させたかったので頑張ってみた。

その節はどうもありがとうございました> しゅうへい さん

MagpieRSSを使ってみた

いろんな Feed を統合するのに使ったツールは、 MagpieRSS。定番。

やり方は MagpieRSS – PHP で使える RSS パーサー。 に書いてあった。出力用のサンプルコードもあるからそれをてきとーに弄ればヨシ。

  • http://magpierss.sourceforge.net/で MagpieRSS (magpierss-0.3.tar.gz) を入手。
  • magpierss-0.3.tar.gz を解凍。
  • 拡張子が .inc のファイルと extlib フォルダを index.php と同じディレクトリにアップロード。
  • 同じディレクトリ(サーバ上)の下に cache という名前のディレクトリを作る。
  • index.php の中のヘッドラインを埋め込みたい位置に以下のコードを挿入。

MagpieRSS – PHP で使える RSS パーサー。

index.phpと同じディレクトリにって書いてあるけど、同じディレクトリじゃなくて適当なディレクトリを作ってそっちに放り込んでもOK。

文字化け問題

と、しれーっとできたように書いてるけど、実は文字化け問題が発生したのであった。最新版 (現時点では0.72) を使うと、一部のRSSが激しく文字化けするのである。

ちなみに一部のRSSとは、RSSのソースファイルを覗いたときに、本文が

ぼ体感で震度

このように↑表記されているもの。具体的にいうと del.ici.ous とか Twitter とか、要は英語圏のサービスがあやしい。

で、いろいろ頭を悩ませて、苦戦したのですが。

実はrss_fetch.inc の357行目を ISO-8859-1 から UTF-8 に変えるだけで解決します。
branchiopoda weblog -【PHP】MagpieRSSで日本語の文字化けを避けるには

すさまじくあっけなく解決しました……ていうか最初に見てたページのコメント欄に書いてあったらしい orz

ついでなので

ついでなので、うちの Other Service ページでの表示に使っているソースおいときますね。概要も引っ張ってリスト表記します。タイトル部分 (ちなみに h4) にはRSSのタイトルがそのまんまくっつきます。

<ul> <?php require_once 'YourDirectry/rss_fetch.inc'; $url = 'YourRSS'; $rss = fetch_rss($url); $title = $rss->channel['title']; $title = mb_convert_encoding($title, "UTF-8", "auto"); echo "<li class=\"ItemCap\"><h4>$title</h4></li>\n"; $rss->items = array_slice($rss->items, 1, 5); foreach ($rss->items as $item ) { $title = $item[title]; $title = mb_convert_encoding($title, "UTF-8", "auto"); $url = $item[link]; echo "<li class=\"ItemTitle\"><a href=\"$url\">$title</a></li>\n"; $description = $item[description]; $description = mb_convert_encoding($description, "UTF-8", "auto"); echo "<li class=\"ItemDesc\">$description</li>\n"; }; $url = $rss->channel['link']; echo "<li class=\"ItemTitle\"><a href=\"$url\">全部見る</a></li>\n"; ?> </ul>

以下は適当に書き換える。

  • YourDirectry:rss_fetch.inc を置いたディレクトリ
  • YourRSS:RSSURL (http://〜 から)

Tips

件数を制御したいときは、以下の部分を変更。

$rss->items = array_slice($rss->items, 0, 5);

この場合、最新から 0 件目までは非表示、その後 5 件までを表示するという意味。つまり最新 1 件目〜 5 件目まで表示されてる。

ランキングに参加したりなんかもしてます☆ Click ☆
fc2人気blogランキングブログランキング・にほんブログ村へ

ReTweet Twitterで つぶやいてみる?

関連記事:こちらも一緒にどうぞ☆

Comments:0

Comment Form
Remember personal info

Trackbacks:0

Trackback URL

Home > ブログ > MagpieRSS 使ってみた

Search
Categories
Archives
Pick Up
TsumuRiさんの読書メーター

この日記のはてなブックマーク数
あわせて読みたいブログパーツ
-->

ジオターゲティング
アクセスランキング
Ads

Return to page top

-->