マグパイRSS (Magpie RSS) でRSSローディング

2005年9月29日

ふと思いついて、RSSリーダを作ってみたくなった。
www watchで紹介されていたAJAX RSS Reader。いかにも使いやすそうだが、残念ながらOperaで動かない。ダウンロードして好き勝手に使える上にPHP+MySQLで動いてるらしいので自鯖に入れてカスタマイズしようと思ったが、手間がかかりすぎて断念。
そういえば前にもRSSリーダ作ろうと思ったことあったっけ。webmonkeyにあったマグパイRSS解説を見ながら。
マグパイRSSはPHPで使えるRSS解析プログラム(パーサ)。一番に考えつく応用例としては、お気に入りサイトの最新の更新情報を自分とこのブログのサイドバーに表示させたりとか。
これをちょっとずつ多機能にしていけばRSSリーダもどきが作れるんじゃないかと思って、とりあえずRSSローダを作ってみた。
Y~ Labs. MagpieRSS実験室

webmonkeyの解説に従えばhotwiredの最新記事5件へのリンクを表示するところまではできるので、これを応用してRSSフィードのURLを入れればエントリをずらりと表示するように変えた。ビジュアルははてなアンテナのパクりです。いや、インスパイヤです。
最終的にはAjaxを使用したシンプルなRSSリーダを作りたいなあ…。JavaScriptなんて触ったこともないけど。

参考

Magpie RSS – PHP RSS Parser – Magpie RSS 公式
『マグパイRSS』でおいしいところどり – webmonkeyによる解説
AJAX RSS Reader – 導入にはユーザ登録と別ソフトのインストールが必要
AJAX RSS Reader – www watchによるAJAX RSS Readerの解説
Y~ Labs. MagpieRSS実験室

おまけ

最小限の構成
(incファイルはここからDL)

cache/
extlib/Snoopy.class.inc
index.html
rss_cache.inc
rss_fetch.inc
rss_parse.inc
rss_utils.inc

現在のindex.htmlのソース公開しておきます。

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Y~ Labs. MagpieRSS実験室</title>
<style type="text/css"><!–
h3 { display:inline; }
blockquote { width:400px; color:#666666; font-size:x-small; border-left:5px solid #ccccff; padding:10px; }
blockquote a { color:#6666cc; }
–></style>
</head>
<body>
<?php
if($_POST[‘url’]) $url = $_POST[‘url’];
else $url = "http://yagi.tc/index.rdf";
?>
<h1>Y~ Labs. MagpieRSS実験室</h1>
<p>フィードURLからエントリ一覧を取得</p>
<form method="POST" action="index.html">
<input type="text" name="url" size="70" value="<?php echo $url; ?>" /><br />
<input type="submit" value="フィードを表示" />
</form>
<?php
include(‘rss_fetch.inc’);
define(‘MAGPIE_OUTPUT_ENCODING’, ‘UTF-8’);
$rss = fetch_rss($url);
echo "<h2>", $rss->channel[‘title’], "</h2>";
foreach ($rss->items as $item ) {
$title = mb_convert_encoding($item[‘title’], "UTF-8", "auto");
$summary = mb_convert_encoding($item[‘summary’], "UTF-8", "auto");
$url = $item[‘link’];
$timestamp = $item[‘date_timestamp’];
echo date("Y-m-d h:i", $timestamp). "\n";
echo "<h3><a href=\"" .$url. "\">" .$title. "</a></h3>\n";
echo "<blockquote>" .$summary. "</blockquote>\n";
}
?>
</body>
</html>

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です