• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:MagpieRSSで異なる複数のブログを表示)

MagpieRSSで異なる複数のブログを表示

このQ&Aのポイント
  • MagpieRSSを使用して、異なる複数のブログを1つの更新欄にまとめ、最新記事を5件表示する方法について教えてください。
  • 提供されたPHPのコードは、MagpieRSSを使用して異なる複数のブログを1つにまとめ、最新記事を5件表示するものです。
  • しかし、記事の表示数を制限する方法がわからず困っています。記事を5件表示する方法を教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • mikemike7
  • ベストアンサー率87% (97/111)
回答No.3

補足だとメールは届かないんですね。 見逃していて返事が遅くなってすいません。 >反映されなくなってしまいました。 エラーが発生するという意味でしょうか。 それとも真っ白? 提示したものの、最後から7行目と8行目でエラーがありました。 ごめんなさい。 ------------------------ $itemday = date('Y-n-j',$val["0"]); $mday = date('w',$val["0"]); ------------------------ val["0"] → $val["0"] に変更して試してみて下さい。

kazu_koban
質問者

お礼

大変お返事遅くなりまして申し訳ありません。 試してみましたところ、無事に解決できました!! ありがとうございました<(_ _)>

その他の回答 (2)

  • mikemike7
  • ベストアンサー率87% (97/111)
回答No.2

No1ですが、最後から3行目の if($i <= 5){break;} は、 if($i >= 5){break;} の間違いです。

kazu_koban
質問者

補足

mikemike7様 早々のご回答有難うございます。 >数箇所のブログ全体から最新5件を抜き出したいということですよね? その通りです。 先ほど教えて頂いたソースで試してみたのですが、反映されなくなってしまいました。記述の場所は下記であっていますでしょうか? 宜しくお願いします。 <?php require_once 'rss_fetch.inc'; require_once 'rss_utils.inc'; require_once 'jcode.php'; include_once 'rss_utils.inc'; define('MAGPIE_OUTPUT_ENCODING', 'UTF-8'); define('MAGPIE_CACHE_ON', false); $url = array( 'http://example1.com/index.xml', 'http://example2.com/index.xml', 'http://example3.com/index.xml', 'http://example4.com/index.xml'); $itemArr = array(); for ($i = 0; isset($url[$i]); $i++) { $rss = fetch_rss($url[$i]); $rss->items = array_slice($rss->items, 0, 5); foreach ($rss->items as $item ) { $itemArr[] = array( strtotime(substr($item['dc']['date'],0,10)), $item ); } } if(!empty($itemArr)){ function cmp_sort($a, $b){ if($a["0"] > $b["0"]){ return -1; }else if($a["0"] < $b["0"]){ return 1; }else{ return 0; } } usort($itemArr, "cmp_sort"); $i = 0; foreach($itemArr as $val){ $title = $val["1"][title]; $title = mb_convert_encoding($title, "Shift_JIS", "UTF-8"); $item_url = $val["1"][link]; $itemday = date('Y-n-j',val["0"]); $mday = date('w',val["0"]); echo "<li><strong>${itemday}[$mday]</strong><a href=\"$item_url\">$title</a></li>\n"; $i++; if($i >= 5){break;} } } ?>

  • mikemike7
  • ベストアンサー率87% (97/111)
回答No.1

数箇所のブログ全体から最新5件を抜き出したいということですよね? テスト環境がないので、未テストでの記載ですが。 $itemArr = array(); for ($i = 0; isset($url[$i]); $i++) { $rss = fetch_rss($url[$i]); $rss->items = array_slice($rss->items, 0, 5); foreach ($rss->items as $item ) { $itemArr[] = array( strtotime(substr($item['dc']['date'],0,10)), $item ); } } if(!empty($itemArr)){ function cmp_sort($a, $b){ if($a["0"] > $b["0"]){ return -1; }else if($a["0"] < $b["0"]){ return 1; }else{ return 0; } } usort($itemArr, "cmp_sort"); $i = 0; foreach($itemArr as $val){ $title = $val["1"][title]; $title = mb_convert_encoding($title, "Shift_JIS", "UTF-8"); $item_url = $val["1"][link]; $itemday = date('Y-n-j',val["0"]); $mday = date('w',val["0"]); echo "<li><strong>${itemday} $youbi[$mday] ${itemtime}</strong><a href=\"$item_url\">$title</a></li>\n"; $i++; if($i <= 5){break;} } } $youbiと${itemtime}が急に出ていますが、質問内容には変換の記載がないので、 この辺は、自身で修正してください。

関連するQ&A

専門家に質問してみよう