PHPとjQueryを使って、外部サイトのRSSフィードを取得・表示する方法をご紹介いたします。RSSフィードのURL以外は、コピペで実装することができます。
PHPとjQueryを使って外部サイトのRSSフィードを取得・表示する方法
下記の内容は、ONZEさんの記事で紹介されていた方法を参考にしています。ONZEさんの記事では、フィードのタイトルのみを表示していましたが、当記事では日付も取得して表示する方法をご紹介いたします。
PHPファイルの用意
まずは、フィードURLを指定するためのPHPファイルを用意します。ファイル名はrss.phpとします。
<?php
$url = "https://techmemo.biz/feed/";
$xml = file_get_contents($url);
header("Content-type: application/xml; charset=UTF-8");
print $xml;
?>
「https://techmemo.biz/feed/」の部分が、取得するRSSフィードのURLになりますので、適宜変更してください。
JSファイルの用意
続いて、スクリプトファイルを用意します。ファイル名はrss.jsとします。
$(function() {
$.ajax({
url: 'rss.php',
xmlType: 'xml',
success: function(xml) {
var row = 0;
var data = [];
var nodeName;
var output = $('#rss');
$(xml).find('item').each(function() {
data[row] = {};
$(this).children().each(function() {
nodeName = $(this)[0].nodeName;
data[row][nodeName] = {};
attributes = $(this)[0].attributes;
for (var i in attributes) {
data[row][nodeName][attributes[i].name] = attributes[i].value;
}
data[row][nodeName]['text'] = $(this).text();
});
row++;
});
output.wrapInner('<ul></ul>');
for (i in data) {
var date = new Date(data[i].pubDate.text);
var strdate = date.getFullYear() + '年' + (date.getMonth() + 1) + '月' + date.getDate() + '日';
output.find('ul').append('<li><span class="rss-date">' + strdate + '</span><a href="' + data[i].link.text + '">' + data[i].title.text + '</a>' + '</li>');
//console.log (data[i]);
}
}
});
});
rss.jsの内容は、コピペでOKです。
rss.phpとrss.jsは、同じ階層に保存します。
HTMLファイルの用意
最後に、RSSを表示するためのHTMLファイルを用意します。
<div id="rss"></div> <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.0/jquery.min.js"></script> <script src="rss.js"></script>
HTML内で、jQuery本体とrss.jsを呼び出します。
「<div id=”rss”></div>」を記述している箇所にRSSが表示されます。
あとがき
上記では、rss.php・rss.js・index.htmlそれぞれが同階層に保存されている場合を想定していますので、保存場所を変えたい場合は、パスを指定している箇所を変更するようにしてください。


こんにちは。
こちらの記事大変参考になりました。
2点質問があります。
1. 複数フィードに対応は可能でしょうか。
2. 記事数を制限することは可能でしょうか。