«« 「最近の気になるブックマーク」や「ソーシャルブックマークへのボタン」とかを色々つけてみた | iPhone VS AndroidはとりあえずiPhone大幅リードか? »»
最近はネットを利用した無料サービスが本当に多くなりました。
例えば
ブログ:アメーバブログ、Livedoor Blog、(一言だけの)twitterなど...
写真の保存・公開:フォト蔵、flickr、携帯百景など...
ソーシャルブックマーク:はてなブックマーク、livedoor clip!, Buzzurlなど...
スケジュール管理:Google Calendar (例:IT勉強会カレンダーの東海三県における抜粋)
学習:smart.fmなど...
サークル活動(SNS):So-net SNSなど
ただ、いろんなサービスを利用してしまったので情報が分散しちゃっていませんか?
折角作ったのだから、なんとか自分のサイトへまとめて取り込めないものか・・・
サイトによっては「RSS」という最新の登録状況データを配布しています。
↑RSSアイコンの例
そのデータを解析して、必要な部分を抜き出して、自分のサイトに合うようデザインすれば、こういったサイトへの最新まとめページを自動的に作成することができます。
私の場合ですと、昨日「Web制作/ソフト開発で役立ちそう」「・・・なことは別にないけど、これは見逃せない!」というページを片っ端からブックマークしている内容をブログのトップページに掲載するようにしました。
この内容は、外部の無料ソーシャルブックマークサービス:はてなブックマークのRSSを取り込んで実現したものだったりします。
(下記のものは「最近の気になるブックマーク」の自動作成させてみた例です)
今回は私の「最近の気になるブックマーク」でも使用した、PHP(バージョンは4以降)を使った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掲示板などにご連絡ください。
◇ ◆ お知らせ ◇ ◆
『Store / つねづね思ふこと - ○本)PHP開発』について
PHPのプログラミングをするからには、是非手元に置きたい本を揃えてみました。
>>『Store / つねづね思ふこと - ○本)PHP開発』を拡大して覗いてみる
投稿者 kuze : 2009年5月16日 14:29
«« 「最近の気になるブックマーク」や「ソーシャルブックマークへのボタン」とかを色々つけてみた | iPhone VS AndroidはとりあえずiPhone大幅リードか? »»
コメント