|
|
SimplePieとは † RSSを取得するためのphpライブラリです。現在のバージョンは、1.2になっています(2009/8/21)。 ダウンロード †http://simplepie.org/downloads/ SimplePie † Magpieとは異なり、simplepie.inc というライブラリを一つ入れておくだけで良いようです。シンプルだからsimplepieなんでしょうか。magpieはとっくにメンテナンスが行われていませんし、rss2.0はうまく読めない事が多いです。理由はよく判らないですけど、ある日突然(たぶん記事による)読めなくなったり、マルチバイトにうまく対応できていなかったり。 使い方 † ダウンロードして解凍、Uploadします。cacheディレクトリを作って書き込める属性にするだけです。 $feed = new SimplePie(); $feed->set_feed_url( $url ); $urlに取得するサイトの文字列(RSSアドレス)を入れるです。 $feed->set_cache_location("./cache/");
$feed->set_cache_duration(1800);
キャッシュ間隔を指定します。単位は秒です。 $feed->init(); $feed->handle_content_type(); handle_content_typeですが、APIリファレンスを見ると、handle_content_type() won't work properly if any content or whitespace has already been sent to the browser, とかいてあるので、これは、このスクリプトが含まれているページに出力するContent-Typeなんだと思う。で、 $title = $item->get_title(); タイトルを取得して $date = $item->get_date('Y/M/d');
日付を取得すると言うわけです。 参考? †になるかどうか知りませんけど、正しいかどうかは不明です。複数のサイトから取得して並べ換えて表示する方法です。 <?php
require_once('./simplepie.inc');
$feed = new SimplePie();
$site_roll = array( 'http://example1.com/rss','http://exapmle2.com/rss');
foreach($site_roll as $url){
$feed->set_feed_url( $url );
$feed->set_cache_location("./cache/");
$feed->init();
$feed->handle_content_type();
foreach ($feed->get_items() as $item){
$url = $item->get_permalink();
$title = $item->get_title();
$date_timestamp = $item->get_date('U');
$date = $item->get_date('Y/M/d');
$koushin_string = '<li>' . $date . ' <a href="' . $url .'">' . $title . '</a></li>';
$rssarray["{$date_timestamp}"] = $koushin_string;
}
}
krsort($rssarray);
echo "<ul>\n";
for(reset($rssarray); $key=key($rssarray); next($rssarray)){
echo $rssarray[$key];
}
echo "</ul>\n";
?>
情報 †βの時の情報は結構有るようですが、最新バージョンのものは少ないようです。SimplePie1.0以降関数の名前が変わっていて、使えない事が多いです。だいたいからして、ベタでrssを取得しなければいけないシチュエイションが最近あまりないですからね。たいていのCMSにはrss取得機能が備わっていますから。 |