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