MagpieRSSを使って複数サイト表示のお勉強
MagpieRSSを使って複数サイト表示のお勉強
MagpieRSSを使って複数サイト表示のお勉強
いろいろ ネットでググって参考にしているのですがなかなか上手くいきませんな!
<?php
require_once 'rss_fetch.inc';
$url = '各サイトのRSSのURL1';
$url = '各サイトのRSSのURL2';
$url = '各サイトのRSSのURL3';
$url = '各サイトのRSSのURL4';
$url = '各サイトのRSSのURL5';
$rss = fetch_rss($url);
$title = $rss->channel['title'];
$title = mb_convert_encoding($title, "UTF-8", "auto");
$link = $rss->channel['link'];
foreach ($rss->items as $item ) {
$title = $item['title'];
$title = mb_convert_encoding($title, "UTF-8", "auto");
$url = $item['link'];
$itemday = date('Y/n/j',strtotime(substr($item['dc']['date'],0,10)));
$youbi = array(0 => '(日)', 1 => '(月)', 2 => '(火)', 3 => '(水)', 4 => '(木)', 5 => '(金)', 6 => '(土)');
$mday = date('w',strtotime(substr($item['dc']['date'],0,10)));
$itemtime = date('G:i',strtotime(substr($item['dc']['date'],11,8)));
print "<div class=\"part\">${itemday} $youbi[$mday] ${itemtime} <a href=\"$url\">$title</a></div>\n";
}
?>
上記で問題なく表示はされるのですが、各サイトの記事を複数4個~5個ぐらいを取得して表示します。
でも実際には最後の1つのサイトだけが表示されるだけ。。。。。
<?php
require_once 'rss_fetch.inc';
require_once 'rss_utils.inc';
$url = array(
'http://index.xml',
'http://index.rdf',
'http://atom.xml');
for ($i = 0; isset($url[$i]); $i++) {
$rss = fetch_rss($url[$i]);
$title = $rss->channel['title'];
$title = mb_convert_encoding($title, "UTF-8", "auto");
$rss->items = array_slice($rss->items, 0, 1);
foreach ($rss->items as $item ) {
$description = $item[description];
$description = mb_convert_encoding($description, "UTF-8", "auto");
$item_url = $item[link];
$date = date("Y.m.d", $item['date_timestamp']);
echo "$description\n";
}
}
?>
これだと全然エラーで表示されない!
<?php
// モジュールを読み込む
require_once("magpierss/rss_fetch.inc");
// キャッシュ期間を秒数にて設定
// 例では30分
define("MAGPIE_CACHE_AGE", 60*30);
// キャッシュディレクトリへのパスを設定
// キャッシュディレクトリをchmod 777 (or 707 or 700)
define("MAGPIE_CACHE_DIR", "/path/2/cache/");
// 日本語バケないためにOUTPUT_ENCODINGをUTF-8にする
define("MAGPIE_OUTPUT_ENCODING","UTF-8");
// 取得したいRSSのurl
$url = "http://";
// ブログのタイトルは$rss->channel['title']という変数、
// RSSは$rss->itemという変数に入る。
// key値、link/title/descriptionで取得できる。
$rss = fetch_rss( $url );
echo "Title:". mb_convert_encoding($rss->channel['title'],"EUC-JP","auto");
echo '<p>';
foreach ($rss->items as $item) {
$link = mb_convert_encoding($item['link'],"EUC-JP","auto");
$title = mb_convert_encoding($item['title'],"EUC-JP","auto");
$description = mb_convert_encoding($item['description'],"EUC-JP","auto");
echo "<a href=$link>$title</a><br />$description";
}
echo '</p>';
?>
これからいろいろと時間をかけて勉強していきたいと思います。
その都度ここに書き留めていきます。
もし、
アドバイスや参考のサイトがありましたらコメント及びトラバでもして下さい。
参考ページ
MagpieRSS の解説ページ
http://www.hyuki.com/yukiwiki/wiki.cgi?MagpieRSS
MagpieRSSを使って複数のRSSをまとめるスクリプトの参考例(これはタイトルを取得しなおすので改造が必要)
http://scrapbook.ameba.jp/network_book/entry-10018566158.html
ごちゃまぜRSSリーダーforPHP -ver1.3
http://www.vector.co.jp/soft/unix/net/se334908.html
RSSをまとめるのが面倒なら
MixFeed
http://www.mixfeed.jp/ などのサービスもあります
単純に RSSを取得し並べるだけなら MagpieRSS の解説ページの解説どおりに
10個並べたら こんな感じになります(表示のstyle等はさわる予定ですが)
http://www.farchi.jp/staticpages/index.php/ceek_news
http://www.farchi.jp/staticpages/index.php/archi_news_list