566843 ランダム
 HOME | DIARY | PROFILE 【フォローする】 【ログイン】

けむしろうの部屋別館

けむしろうの部屋別館

【毎日開催】
15記事にいいね!で1ポイント
10秒滞在
いいね! --/--
おめでとうございます!
ミッションを達成しました。
※「ポイントを獲得する」ボタンを押すと広告が表示されます。
x

PR

Calendar

Archives

2024年04月
2024年03月
2024年02月
2024年01月
2023年12月

Category

Favorite Blog

ZIKOMANZOKU rooms kotoraya2000さん
しゅみっだ~~~ もこもこ5781さん
今日のご遺体 秘密の洗体レディーさん

Comments

コメントに書き込みはありません。

Freepage List

2006年01月15日
XML
カテゴリ:プログラミング
私はこの楽天ブログ(けむしろうの部屋別館)の他に、個人のホームページ(けむしろうの部屋本館)を持っています。

以前は近況を本館の方に書いていたのですが、ブログを始めてからはその便利さに負けて近況についてはすべてブログを利用しています。

かといって自分のホームページにもせめて最新の近況のいくつか載せておきたいと思い、いまや多くのブログで採用されているRSSを利用して最新記事を自動取得し、本館の方に表示することにしました。

幸い現在利用しているレンタルサーバ(さくらインターネット)ではPHPが使えるため、PHPによるRSSデータ処理ライブラリを導入してRSS記事を取得することにします。

今回導入したRSSデータ処理ライブラリはフリーソフトの「MagpieRSS」です。
作成者は日本人ではありませんが、マルチバイト文字も扱えるので日本語も問題なく通ります

私の行った作業を備忘録として書いておきます。何かの参考になる方もいらっしゃるかもしれません。

できあがったものは「けむしろうの部屋」のトップページ(index.php)で、このページの近況のところに最新の記事5件分を表示されていることで確認できます。


  1. MagpieRSSをダウンロードする。
    公式サイトのページ上部にある「DOWNLOAD」のところをクリックし、適当なミラーサイトから最新版をダウンロードします。
    私はmagpierss-0.72.tar.gzをダウンロードしました。

  2. magpierss-0.72.tar.gzを展開してインストールする。
    これから作りたいindex.phpのあるディレクトリ直下にmagpierssという名前のディレクトリを作成して、以下のファイルとディレクトリをその下にコピーする。

    • rss_utils.inc
    • rss_cache.inc
    • rss_fetch.inc
    • rss_parse.inc
    • extlib/Snoopy.class.inc


  3. index.phpの先頭に以下のPHPプログラムを記述する。

    <?php
    require_once('magpierss/rss_fetch.inc');
    define('MAGPIE_OUTPUT_ENCODING', 'UTF-8');

    $count = 5;
    $length = 60;
    ?>
    なお最初の2行だけが必須です。$count変数は表示する最新日記の件数、$lengthは表示する日記記事の最大文字数です。

  4. RSS記事をフェッチして必要なデータを表示する。
    私の場合は記事の日付、タイトル、記事内容の一部だけが必要でしたので、以下のようなコードを書きました。

    $url = 'http://api.plaza.rakuten.ne.jp/kemusiro/rss/';
    $rss = fetch_rss($url);
    echo "<ul>";
    array_splice($rss->items, $count);
    foreach ($rss->items as $item) {
    $href = $item['link'];
    $title = mb_convert_encoding($item['title'],
    "SJIS",
    "auto");
    $date = date('Y/m/d H:i:s',
    parse_w3cdtf($item['dc']['date']));
    $description = mb_convert_encoding($item['description'],
    "SJIS",
    "auto");
    if (mb_strlen($description) > $length) {
    $description =
    mb_strcut($description, 0, $length) . "...";
    }
    echo "<li>";
    echo "<FONT color=\"#ff8040\">(" . $date . ")</FONT> ";
    echo "<a href=$href>" . $title . "</a><BR>";
    echo $description . "</li>";
    }
    echo "</ul>";
    取得したいRSSデータのURLを1行目で指定し、2行目でRSSデータを取り込みます。
    後は必要なデータに応じて$rss変数のフィールドを参照してください。

    RSSデータとして保存されている日付のフォーマットはW3Cフォーマットですが、このフォーマットは少し少し見辛いので、見慣れたフォーマットに変換するために私のプログラムではparse_w3cdtfメソッドを利用してフォーマット変換しています。
    また文字コードをUTF-8からSJISに変換するためにmb_convert_encodingメソッドを利用しました。

    その他、文字色や箇条書きなどにするために適当にHTMLタグを記述しています。

こんな感じで意外と簡単にできました。
MagieRSSの作者に大感謝です。

なおRSS1.0の仕様はこちらから参照できます。





お気に入りの記事を「いいね!」で応援しよう

Last updated  2006年01月15日 04時42分49秒
コメント(4) | コメントを書く
[プログラミング] カテゴリの最新記事



© Rakuten Group, Inc.