RSSニュース一覧をGoogleサイトで表示

 


今のGoogleサイトは昔iGoogleで使えたガジェットが完全に使えなくなったので自前で作成するか、どこかのサービスを使う形にしないといけない。
昔から2chまとめサイトのRSSを使用しているが、このRSS関連のサービスは尽く無くなって今や申し訳程度のサービスしかない。
Googleサイト内でRSS読み取りのコードをJSで書くも、今はセキュリティが厳しくてクロスドメインの壁が立ちはだかる。
そうなるとPHPで書くしか無いのだが、サーバレンタルはお金がかかるので、苦し紛れのローカルにWebサーバ(XAMPP)を入れて代用。
あとは下記の、RSS読み取りのソースを置いて、iframeで読み込めば完了。

▼rss.php(アクセス時はパラメータ「sid」に配列の番号を入れてURL指定)

//RSSのURLの配列
$rss = [
	'http://blog.livedoor.jp/dqnplus/index.rdf', //痛いニュース
	'http://himasoku.com/index.rdf', //暇人\(^O^)/速報
	'http://blog.livedoor.jp/kinisoku/index.rdf', //キニ速
	'http://news4vip.livedoor.biz/index.rdf', //ニュー速クオリティ
	'http://hamusoku.com/index.rdf', //ハムスター速報
	'http://blog.livedoor.jp/nwknews/index.rdf', //哲学ニュース
	'http://blog.livedoor.jp/news23vip/index.rdf', //VIPPERな俺
	'http://michaelsan.livedoor.biz/index.rdf', //もみあげチャ~シュ~
];

if(!empty($_GET['sid'])) {
	$sid = htmlspecialchars($_GET['sid']);
} else {
	$sid = 0;
}

//RSS読み込み
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $rss[$sid]);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, 10);
$str = curl_exec($curl);
curl_close($curl);
$feed = simplexml_load_string($str);

//出力
if($feed->channel[0] != null) {
	$entry = $feed->channel[0];
	echo '<p><strong>'.strip_tags($entry->title).'</strong></p>';
}

if($feed->item[0] != null) {
	echo '<ul>'."\n";
	for($i=0;$i<=20;$i++){
		if($feed->item[$i] != null){
			$entry = $feed->item[$i];
			//$date = date("Y/m/d/", strtotime($entry->published));//日付
			$title = strip_tags($entry->title);
			echo '<li><a target="_blank" title="'.$title.'" href="';
			echo $entry->link;
			echo '">';
			//echo '<p>'.$date.'</p>';//日付
			echo $title;
			echo "</a></li>\n";
		} else {
			break;
		}
	}
	echo '</ul>'."\n";
}

▼iframe

<iframe src="http://localhost/rss/?sid=0" width="100%" height="100%" style="border:0;">