PHPにおけるRSSリーダーの作り方について(PHP4対応) : つねづね思ふこと

«« 「最近の気になるブックマーク」や「ソーシャルブックマークへのボタン」とかを色々つけてみた | iPhone VS AndroidはとりあえずiPhone大幅リードか? »»

PHPにおけるRSSリーダーの作り方について(PHP4対応)

2009年5月16日

このエントリーをはてなブックマークに追加
PHPで自家製RSSリーダーを作って、無料Webサービスで作ったデータを自分のホームページへまとめてみましょう!


 ・外部無料サービスで作ったデータを融合しよう!

最近はネットを利用した無料サービスが本当に多くなりました。
例えば

ブログ:アメーバブログLivedoor Blog、(一言だけの)twitterなど...
写真の保存・公開:フォト蔵flickr携帯百景など...
ソーシャルブックマーク:はてなブックマークlivedoor clip!, Buzzurlなど...
スケジュール管理:Google Calendar (例:IT勉強会カレンダーの東海三県における抜粋)
学習:smart.fmなど...
サークル活動(SNS):So-net SNSなど

http://movapic.com/hiroshikuze/calendar
↑ 無料写真公開サイト携帯百景の例 ↑

ただ、いろんなサービスを利用してしまったので情報が分散しちゃっていませんか?
折角作ったのだから、なんとか自分のサイトへまとめて取り込めないものか・・・

サイトによっては「RSS」という最新の登録状況データを配布しています

↑RSSアイコンの例

そのデータを解析して、必要な部分を抜き出して、自分のサイトに合うようデザインすれば、こういったサイトへの最新まとめページを自動的に作成することができます。

私の場合ですと、昨日「Web制作/ソフト開発で役立ちそう」「・・・なことは別にないけど、これは見逃せない!」というページを片っ端からブックマークしている内容をブログのトップページに掲載するようにしました
この内容は、外部の無料ソーシャルブックマークサービス:はてなブックマークのRSSを取り込んで実現したものだったりします。

(下記のものは「最近の気になるブックマーク」の自動作成させてみた例です)

最近の気になるブックマーク
>> その他の気になるブックマーク

今回は私の「最近の気になるブックマーク」でも使用した、PHP(バージョンは4以降)を使ったRSSを取り込むソフト、自家製RSSリーダーの作り方をご紹介します。 

・RSSリーダーを作成する為に用意するもの

1) PHPバージョン4以降が動作するサーバー
2) RSSリーダー作成作業を大幅に簡略化するMagpieRSSライブラリ
3) 勿論取り込む元となるRSSデータ
4) PHPやHTML/CSSはそれなりご存知であることを前提に進めます

・つくりかた(用意の仕方)

1) 「俺のサーバーはPHPのバージョンいくつだ?」という方は以下のプログラムを実行させてください

<?php

phpinfo();

※ファイル名は、test.phpとでもしてください。
※PHP5ならMagpieRSSを使わなくても標準でRSSデータを取り込むのに便利な命令があるらしいです。
が、知らん!

プロバイダーが提供している無料レンタルサーバは、使えなかったり使用に大幅な制限が掛かっているケースが多いので、その辺は各自なんとかしてください。

2) MagpieRSSライブラリは、MagpieRSS公式サイト(英語)からなんとか落としてください。

解凍するといろいろファイルやフォルダが出てきますが、使用するものは

extlibフォルダ
rss_cache.incファイル
rss_fetch.incファイル
rss_parse.incファイル
rss_utils.incファイル

これに 空のcacheフォルダ を付け加えて使用します。

で、適当なフォルダにまとめてアップ
その後cacheフォルダのみ属性を777にしてください。

3) 次に、くじぇ工作所オリジナルのMagpieRSS向けクラス、RSSreaderlib.phpのソースコードをダウンロードして、これも適当な場所に上げてください。

MagpieRSSをRSSreaderlib.phpと絡めて使うことによるメリットは以下の通り

・複数のRSSデータをまとめて最新のもののみ取り出すことが可能

・RSSには、ATOM / RSS1.0 / RSS2.0等がありますが、この3種類程度ならデータを同じ処理で扱えます。

・文字コードの変換作業とかまとめて対応

・MagpieRSSからロードしたデータをfor文より取り出しやすい形に変換

・他のサイトのMagpieRSS解説ページを読まなくて良い(このページでは、この先RSSreaderlib.phpについて説明します)

なお、テスト回数が少ないのでバグがあればご指摘ください。

4) RSSreaderlibを呼び出してRSSをロードした後、自分のサイトのデザインに合うよう表示するPHPプログラムを組みます。

なお、つねづね思ふことトップページ「最近の気になるブックマーク」の場合は、下記のような感じで組んでいます。
※<<ほにゃらら>>の部分をあなたのサイトに合わせてください

 

 

プログラム解説しますと

3行目:RSSReader(出力文字コード, rss_fetch.incの位置, ロードするRSSのURL)

は、コンストラクタでRSSをロードする等、初期化を担当しています。

複数のRSSをロードしたい場合は、
RSSReader(出力文字コード, rss_fetch.incの位置, RSSのURLその1, RSSのURLその2...)
と、付け加えてください。

※ただし、数が多くなると当然重くなります。スレッドとかの処理分散は全くやっとりません。

これで、変数RSSReaderにRSSのオブジェクトデータが入るので、以下ここからデータを呼び出します。

21行目:getContentsCount()で、入っているRSSの件数を調べることができます。
この値を参考に表示する件数を指定します。

23〜24行目:記事のタイトル、URL、概要(はてなブックマークの場合は自分でつけたコメント)は、getContentsURL($i)、getContentsTitle($i)、getContentsDesc($i)で呼び出します。

※$iには、最新のものから何件目かを指定

5) HTMLから呼び出すのであれば、SSIでも使って <!--#include virtual="RSSreaderlib.php" --> と呼び出してください。

完成

・おわりに

なお、RSSreaderlib.php 及び bookmark.php について使用は無料で、商用使用に制限はかけません。
※ただ、何らかの機会があればこのページを紹介していただいたら嬉しいです。

ご意見ご感想、バグ報告等あればジグソーTools掲示板などにご連絡ください。

PHPによるWebアプリケーションスーパーサンプル 第2版
西沢 直木
ソフトバンククリエイティブ
売り上げランキング: 5451
おすすめ度の平均: 4.5
3 内容自体は良いが、構成に難有り
4 まぁまぁ
5 良いですね
5 非常に便利な本です
5 初心者だからこそ・・・


◇ ◆ お知らせ ◇ ◆

『Store / つねづね思ふこと - ○本)PHP開発』について
PHPのプログラミングをするからには、是非手元に置きたい本を揃えてみました。

>>『Store / つねづね思ふこと - ○本)PHP開発』を拡大して覗いてみる


投稿者 kuze : 2009年5月16日 14:29


■このエントリーに関連した記事

■「実用ソフト&サイト」カテゴリの最新記事

«« 「最近の気になるブックマーク」や「ソーシャルブックマークへのボタン」とかを色々つけてみた | iPhone VS AndroidはとりあえずiPhone大幅リードか? »»


自己紹介
PHPやVBによるコーディングやシステムエンジニアを仕事にしています。
主にiPhoneアプリの紹介やWeb開発などのPC系の話題と、アニメやゲームなどのサブカルな話題を取り扱っています。

[PR]

instagram

カテゴリ

最近のエントリー

最近掲載した画像
  • 映画『ゴジラ-1.0』レビュー(ネタばれあり)
  • Three-up HC-T2206WHで狭い部屋も快適に
  • 「君たちはどう生きるか」は父親を気にするかで評価が別れそう(ネタバレあり)
  • 画像生成AIソフトでしばらく毎日SNSに画像を上げてみたけどネタ出しについて
  • ホットクックを使えば一人で並行して色々作りやすくなるのでオススメ
  • ホットクックを使えば一人で並行して色々作りやすくなるのでオススメ
  • ホットクックを使えば一人で並行して色々作りやすくなるのでオススメ
  • Python3.4向けにつくったAPIが、Python3.6では動かなくなったので直してみた

RSS
更新情報はRSSをご利用下さい