RSSをPHPホームページから読む

rss.php(形が崩れるのでダウンロードしてください。)

最近、RSSというものが面白い遊び道具じゃなかろうかとちまちまこねくり回しております。 RSSって、つまりは日記サイト(やニュースサイト)の内容をタグの形で提供することで、 HTMLと違い見た目を制御しないのです。その分通信量は軽くなります。 具体的な例としては、俺の日記サイトあるindex.rdfを参照のこと。 ちなみに、このindex.rdfは日記サイトの右下にリンクが貼ってあります。

専用のソフトウェアを使って読むことが多く、 WindowsだとFeedDemonなどのソフトウェアがあります。参考ページに一覧が載っています。 ちなみに、俺はSharpReaderというのを使用中。

ところで、日記サイトにニュースが表示されていることがあります。 これは、新聞社が配信しているRSSをホームページ側で取得・解釈をしているのです。 そのほかに、日記サイトを登録しておくと自動的にRSSを解釈してくれるサービスも無料であったりします。PAIPO READER(無料なので、重いです)

専用のソフトウェアを使用せず、外部のRSSを解釈・表示できるというのに魅力を感じ、 日記を登録して表示させるだけならできるかなと、俺もやってみようかなと思い立ち、着手。

方針

設置手順

単純にテーブルを作成して展開しているだけです。Cookieとか使ってもっと高機能にすることも可能かもしれない。 単純に使用例と思ってくださいね。 設置後サンプル
ソース内容
<?php

	require_once 'rss_fetch.inc';

	function chomp($str){
		return str_replace("\n",'',$str);
	}
	
	function one_diary($url)
	{
		$rss = fetch_rss($url);

		print "<tr><td valign=\"top\">\n";
		$title = $rss->channel['title'];
		$title = mb_convert_encoding($title, "sjis", "auto");
		print "$title <br>\n</td><td>\n<ul>";

		$m_date = $rss->channel[dc][date];
		foreach ($rss->items as $item ) {
			$title = $item[title];
			$title = mb_convert_encoding($title, "sjis", "auto");
			$desc = $item[description];
			$desc = mb_convert_encoding($desc, "sjis", "auto");

			$url   = $item[link];
			$date = $item[dc][date];
			if ($date == "" ){
				$date = $m_date;
			}
			echo "<li><a href=\"$url\">$title</a> <small>($date)</small><br><small>$desc</small><br></li>\n";
		}
		print "</ul></td></tr>";
	}

	$diary_list = file("list.txt");
	foreach($diary_list as $url ){
		$url = chomp($url);
		//array_push($urls, $url);
		$urls[] = $url;
	}

	print "<table>";
	foreach ($urls as $url ){
		one_diary($url);
	}
	print "</table>";

?>

</body>

</html>