Home > PROGRAM SAMPLE > PHP5でRSS2.0を読み込んで表示する

PHP5でRSS2.0を読み込んで表示する

3月 23rd, 2007

ひょんなことで,PHP5で,RSS2.0のフィードを読み込んで,ホームページにリンクを作る事になったので,覚書します

MagpieRSSというライブラリをダウンロードする。
http://magpierss.sourceforge.net/

ダウンロードした,magpierss-0.72.tar.gzというファイルを解凍して,

.inc という拡張子のファイルとextlib/Snoopy.class.inc というファイルを,

例えば,home/rss/ の中に入れる。

home/rss/rss_utils.inc
home/rss/rss_cache.inc
home/rss/rss_parse.inc
home/rss/rss_fetch.inc
home/rss/extlib/Snoopy.class.inc

僕の環境では,すべてUTF-8でPHPなんかも作ってたので,
これらのファイルもみんなUTF-8で保存しなおしました。

さらに,BASIC認証してる場合は,Snoopy.class.incを開いて,
var $user = “userid”;
var $pass = “password”;

を入れればOKですよ。

まず,RSSを呼び出すホームページ(例えばindex.php)に,

require(”./rss/rss_test.php”);
require(”./rss/rss_fetch.inc”);

$rss = new rss_test();

を書き,出力箇所に次のように記述します。

<?php $rss->get($count, $url); ?>

実際RSSを読み込む方法は次の通りです。

class rss_test {

function get($count, $url) {

define(’MAGPIE_OUTPUT_ENCODING’, ‘UTF-8′);

$rss = fetch_rss($url);

array_splice($rss->items, $count);

foreach ($rss->items as $item) {

$href = $item['link'];

$title = mb_convert_encoding($item['title'], “UTF-8″, “auto”);

$date=$item[pubdate];

$daytime=date(”Y年m月d日”,strtotime($date));

$daytime = mb_convert_encoding($daytime, “UTF-8″, “auto”);

echo “<li><a href=\”" . $href . “\”>” . $title . “ ” . $daytime . “</a></li>” . “\n”;

}

}

}

以上です。

pubdateは,pubDateではなく全部小文字で書かないと認識しないですよ。

PROGRAM SAMPLE

  1. No comments yet.
  1. No trackbacks yet.