QR Code Business Card

複数RSS取得して表示するPHP+JS ※Atom RSS1.0 RSS2.0対応【Google Feed API代替】

RSS_PHP_JS
 Google Feed APIがダウンするというちょっとした騒ぎがありました。無料ですし便利なので今まで何かと使ってきましたが、突然ダウンされるもの困りますので、Google Feed APIの代替になるPHPを用意しました。複数のRSS読み込んでPHP+JavaScriptでwebサイトに表示します。


 こんにちは!gaito777です。

 Google Feed APIがダウンすると地味に痛いです。便利ですし思ったより使っている人多かったようで、ダウン直後ネット上では阿鼻叫喚でした(笑)。ついにサービスが終了したのではないかと憶測を呼びましたが、結局いつのまにかしれっと復活してて逆に驚きました。

 公式サイトによると実は2015年4月20日までサポート終了だったようですね。まったく知りませんでした。

Google Feed API Terms of Service  |  Google Feed API  |  Google Developers

 そういう事情でGoogle Feed APIはもう当てにできなくなったので、代わりに用意したのが今回のPHPです。



概要

複数RSSを取得して表示するPHP − 概要

特徴


Atom RSS1.0 RSS2.0に対応。
複数のRSSを読み込んで記事を日時の順にソートし記事数を指定して表示できる。
各RSSの読み込む記事数を個別に設定できる。
RSSデータはテキストファイル(json形式)に保存するので頻繁にRSS配信元にアクセスしない。


 複数のRSSを読み込めますので、いろんな用途で使えると思います。


内容


サンプルページ


RSS sample page

RSSサンプルページ – ウェブソク


機能は大きく分けて2つ


RSSファイルリスト

 サンプルのファイルリストは上のようになるのですが、重要な機能は大きく分けて2つです。一つはget_rss.phpでRSSのデータファイルdata_rss.jsonを保存する仕組みです。もう一つはそれをdisp_rss.jsを使ってhtmlファイルindex.htmlに表示する仕組みです。

複数のRSSを読み込んでjsonに変換して保存(get_rss.php)
jsonファイルを読み込んでhtmlに追加(disp_rss.js)


 登録したRSSを読み込んでデータファイル(json形式テキストファイル)に保存しますので、これがキャッシュの代わりになって、大量のリクエストあった場合でもRSS配信元に一々アクセスすることなく処理することができます。RSS配信元の負担を減らすことと、RSSの表示スピードを速くすることができます。


RSSの取得にはcronを使おう


 そしてここで注意ですが、このままではget_rss.phpは自動で動きません。get_rss.phpを何らかの手段で定期的に動かして、RSSのデータファイルdata_rss.jsonを更新する必要があります。

 1番簡単なのはレンタルサーバーの機能でよくあるcronを使うのが良いと思います。

cronとは?

指定時間に指定コマンド(プログラム)を自動的に実行させるサーバーの機能です。
定期的なメールの送信や、ブログのRSS取得などに使用されます。


 大抵のどこのレンタルサーバーにもある機能なので、特に問題はなく使えると思います。使い方もそれぞれヘルプがありますので、参考にして設定してみて下さい。

 1時間毎や30分毎に動作させるなど、動かすタイミングを自由に設定できますので、RSSの更新頻度などに合わせて設定して下さい。


 cronの設定方法は、例えばXSERVERの場合だと、こんな感じになります。

Cron設定 – マニュアル|エックスサーバー



ソース

RSS PHP source

PHP


 RSSのURLの他、$entry_cntを設定することにより、各RSSから取得する記事数を個別に設定できます。最後に取得した全記事を日時で並べ替え出力します。

 $json_fileは、取得したRSSを保存するデータファイルです。PHPから利用しますので絶対パスで設定して下さい。このファイルが存在しない場合は自動的に作られます。

 $no_imageは、RSSから画像を取得できなかった場合のダミー画像です。ブラウザから利用しますのでURLで設定して下さい。

 先頭の#!/usr/local/bin/phpは、この記述がないとcronが動かない場合があるそうなので、念のため追加しています。レンタルサーバーによって違う場合があるかもしれませんので、動かない時は確認をお願いします。

get_rss.php





Javascript


 こちらでjsonファイルを読み込んでタグに整形します。最終的な表示件数はこちらで設定します。

 データファイルはブラウザから利用しますのでURLで設定します。

disp.rss.js





HTML


 <div id="rss-area"></div>の中にRSSが追加されます。jQueryを使って追加していますので、jQuery本体は読み込んで下さい。あとはデザインに合わせてお好きにどうぞ。

index.html





CSS


 CSSはRSSのタグに合わせて設定して下さい。下記はサンプルページのRSS部分の設定です。

style.css





まとめ


 もしcronが使えなかった場合、例えばindex.htmlindex.phpにして、別途タイムスタンプ記録用のファイルを1つ用意。これと現在時刻を比較して、設定時間以上ならget_rss.phpを読み込む、とかにすればいいですね。

 いろいろと応用が効いて便利だと思いますので、ぜひ試してみて下さい。

SNSでもご購読できます。

コメントを残す

*

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)