人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

PEARのXML_RSSについてので質問です。
複数のサイトのRSSを読み込み、一覧表示するページを作っています。
下記の記述だと一つのRSSしか表示できませんでした、
どうすれば$rssに他のRSSも混ぜる事ができますでしょうか。
宜しくお願い致します。


<?php
require_once("XML/RSS.php");
?>
<?php
/**
* RSSファイルへのURIをコンストラクタの引数に渡す
*/
$rss =& new XML_RSS("http://www.doyouphp.jp/home.rss");

/**
* RSSファイルをパースする
*/
$rss->parse();

echo "<h1><a href=?"http://www.doyouphp.jp/?">Do You PHP?</a>のヘッドライン</h1>?n";
echo "<ul>?n";

/**
* getItemsメソッドを使用して全item要素を取得し、表示する
*/
foreach ($rss->getItems() as $item) {
echo "<li><a href=?"" . $item['link'] . "?">" .
mb_convert_encoding($item['title'], mb_internal_encoding(), 'auto') .
"</a></li>?n";
}

echo "</ul>?n";
?>


●質問者: やまねこ
●カテゴリ:コンピュータ インターネット
✍キーワード:AS echo Pear PHP RSS
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● nikuzure
●35ポイント

例えばですが

$aUrlList = array("URL1","URL2",…);

としてリストを作っておいて

foreach($aUrlList as $key => $value){

$rss =& new XML_RSS($value);

?以下パース処理等?

}

とすることで、順番に取得する事が出来ます。

◎質問者からの返答

ご回答ありがとうございます!

教えて頂いたやり方で順番に表示できました。

ただ、URL1とURL2のrss情報を1つにまとめて、日付順番に表示したいのです。

説明足らずで申し訳ございません。。。

自分用のhttp://wwwwwwww.ws/のサイトのようなページを作りたかったのです。


2 ● nikuzure
●35ポイント

混在で、ということですね、失礼しました。

では以下の手順ではいかがでしょうか。

$aUrlList = array("URL1","URL2",…);

foreach($aUrlList as $key => $value){

$rss =& new XML_RSS($value);

ここまでは同じですが、取得した値を別の配列に格納します。

その時、日付を同じ形式にしてください。

例:

$array[$key]['date'] = タイムスタンプ等

$array[$key]['title'] = タイトル

$array[$key]['url'] = URL

こうすることで

$array[0]['date'] = タイムスタンプ1

$array[0]['title'] = タイトル1

$array[0]['url'] = URL1

$array[1]['date'] = タイムスタンプ2

$array[1]['title'] = タイトル2

$array[1]['url'] = URL2

?以下略?

の形式となります。

出来上がった配列を、以下の関数でソートしてあげてください。

usort($array , "cmp");

function cmp($a , $b){

return $a['date'] >= $b['date'];

}

$array の内容を、cmp という function に渡し、date で比較をし、ソートします。

比較を逆にすれば、並びも逆になります。

こうすると、$array の値がソートされます。

◎質問者からの返答

ご回答ありがとうございます。

教えて頂いたように試しているのですが、、、知識が乏しく苦戦中です。

頑張ってみます。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ