手打ちHTMLサイトで他サイトのRSSを表示する方法

こんにちは、minoruです。

手打ちHTMLサイトでも、PHPが使えるサーバーであれば他サイトや、自分のブログなどのRSSをサイト内に表示する事ができます。

クロスドメインでRSSを取得してhtmlで表示する

上記の記事を参考にさせて頂いたのですが、上記の記事ではPHPでRSSを取得し、それをJavascriptで表示するという流れになっています。

私の場合はPHPだけを使って表示させてみました。

ソース

<?php
// タイムゾーンを日本に設定
date_default_timezone_set('Asia/Tokyo');

// 取得したいRSSのURLを設定
$url = "取得したいRSSのURL";
// MAXの表示件数を設定
$max = 5;

// simplexml_load_file()でRSSをパースしてオブジェクトを取得、オブジェクトが空でなければブロック内を処理
if( $rss = simplexml_load_file( $url ) ){
$cnt = 0;
$output = '';
/*
* $item->title:タイトル
* $item->link:リンク
* strtotime( $item->pubDate ):更新日時のUNIX TIMESTAMP
* $item->description:詳細
*/
// item毎に処理
foreach( $rss->channel->item as $item ){
// MAXの表示件数を超えたら終了
if( $cnt >= $max ) break;

// 設定
$title = $item->title;
$date = date("Y/n/j", strtotime($item->pubDate));
$link = $item->link;
$description = mb_strimwidth (strip_tags($item->description), 0 , 110, "…Read More", "utf-8");
// 出力する文字列を用意
$output .= '<div class="date">'.$date.'</div><h4><a href="'. $link .'">'. $title . '</a></h4>'.$description;
$cnt++;
}
// 文字列を出力
echo $output;
}

たとえば上記のソースをabc.phpという名前で保存したとします。(htmlファイルと同じフォルダ内に入れると良いですよ)

あとはHTMLファイルの表示したい箇所に

<?php include('abc.php'); ?>

上記のコードを挿入するだけ。

今ブログを書くとなればワードプレスを使う人が殆どかと思いますが、ワードプレスの場合はデータベースのサーバーにアクセスする手間がかかる分、表示に時間がかかります。

それなりのサーバーを契約していればほとんど気にするような事ではありませんが、個人の極小サイト向けの安いレンタルサーバーなんかだと思いの外遅い事もあります。

それにワードプレスはデザイン1つ変えるにしても膨大な量のCSSの中から目的の物を探したりするのも億劫ですし、文章メインのシンプルなHTMLサイトの場合、ワードプレスよりも表示が軽いHTMLが私は好きです。

シェアする

  • このエントリーをはてなブックマークに追加

フォローする