ジグソーTools
http://kuze.tsukaeru.jp/tools/index.shtml
Google  
web kuje.kousakusyo.info
for mobile
( http://kuze.tsukaeru.jp/i/ )
English version
Translated by .
 トップページへ / RSSreaderlib




 RSSreaderlib ver 10/10/02

最終更新  2010年10月02日 10/10/02版リリース
2009年4月11日 10/04/11版リリース
[ / / ]
[ ]
[ ]
[ / / ]



 

概要

MagpieRSSと併用して使用する、PHP向けRSSリーダーライブラリです。

  • 複数のRSSデータをまとめて最新のもののみ取り出すことが可能
  • RSSには、ATOM / RSS1.0 / RSS2.0等がありますが、この3種類程度ならデータを同じ処理で扱えます
  • 文字コードの変換作業をまとめて一発対応
  • MagpieRSSからロードしたデータをfor文より取り出しやすい形に変換

※MagpieRSS単独使用における、以下の点を改善します。

  • 単独のRSSデータのみの取り出しに対応
  • RSSの種類によって、データの取り出し方が一部異なっていた
  • 文字コードの変換作業がそれぞれ必要だった
  • ロードしたRSSはfor文からは扱いづらかった

バージョン履歴

10/10/02 版
複数のサイトからRSSを取得した場合に、URLがダブったらその分は表示しない
atom形式では、<content>タグの中身が取得できなかった問題を修正
10/04/10 版
携帯百景などに対応した getContentsSummary 関数などを追加
またテンポラリファイルの作成に対応、受信失敗率が減りました
09/05/19 版
初リリース

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

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

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

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

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

↑RSSアイコンの例

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

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

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

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

このようなブログパーツなどの作成に使えるPHP向けライブラリ、それがRSSreaderlibです。


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

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


つくりかた(用意の補足も含む)

1) 俺のサーバーのPHPバージョンがご不明な方は、以下のプログラムを実行させてください

<?php

phpinfo();

?>

※ファイル名は、test.phpでもなんでも構いません(拡張子はphpで)。

プロバイダーが提供している無料レンタルサーバは、phpが使えなかったり、使用に大幅な制限が掛かっているケースが多いです。
詳細は、レンタルサーバご提供元にお尋ねください。

2) MagpieRSSライブラリをダウンロードしてください。
(RSSreaderlibライブラリの動作にはMagpieRSSライブラリが必須です)
MagpieRSS公式サイト(英語)からMagpieRSSライブラリをダウンロードすることができます。

ダウンロードしたMagpieRSSについて、解凍するといろいろファイルやフォルダが出てきますが、使用するものは

  • extlibフォルダ
  • rss_cache.incファイル
  • rss_fetch.incファイル
  • rss_parse.incファイル
  • rss_utils.incファイル
  • これに 空のcacheフォルダ を付け加えて

以上を使用します。

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

3) 次に、MagpieRSS向けクラス、RSSreaderlib.phpのソースコードをダウンロードして、適切な場所に上げてください。

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

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

 


<?php
/**
 * このファイルの名前は「callRSS.php」とする
 */
require_once "<< RSSreaderlib.phpへのパス >>";
$RSSReader = new RSSReader(CALL_MAKE_TEMPFILE_FOLDER, "<< RSSreaderlib用データの仮保存先 >>");
$RSSReader = RSSReader(
'<< 出力する文字コード(sjis/euc/utf-8など) >>',
'<< MagpieRSS内のrss_fetch.incへのパス >>',
'<< ロードするRSSのURL(例: http://b.hatena.ne.jp/halohalolin/rss )>>'
);
?>

<div style="
text-align:left;
font-size:0.8em;
background-color: #ffffff;
padding: 6px;
width:500px;
border: 2px solid #fff;
-webkit-border-radius: 12px;
-moz-border-radius: 12px;
border-radius: 12px;
">
<strong style="color:#ff0000;">最近の気になるブックマーク</strong>
<?php
echo "<ul>";
$max = ($RSSReader -> getContentsCount() > 5) ? 5: $RSSReader -> getContentsCount();
for($i = 0; $i < $max; $i++) {
echo "<li><a href=\"".$RSSReader -> getContentsURL($i)."\">"
.$RSSReader -> getContentsTitle($i)."</a><br />"
.$RSSReader -> getContentsDesc($i)."</li>";
}
echo "</ul>";
?>
<div style="text-align:right;">
<a href="<< 自分のはてブURL(例: http://b.hatena.ne.jp/halohalolin/ )>>">
>> その他の気になるブックマーク</a></div>
</div>

 

サンプルプログラム解説
RSSReader(CALL_MAKE_TEMPFILE_FOLDERRSSreaderlib用データの仮保存先)
RSSreaderlib用データ(受信したRSSファイル)の仮保存先
RSSReader(出力文字コード, rss_fetch.incの位置, ロードするRSSのURL)
コンストラクタでRSSをロードする等、初期化を担当。
複数のRSSをロードしたい場合は、
RSSReader(出力文字コード, rss_fetch.incの位置, RSSのURLその1, RSSのURLその2...)
と、付け加えてください。
※ただし、数が多くなると当然重くなります。ご注意ください。
※これで、変数RSSReaderにRSSのオブジェクトデータが入るので、以下ここからデータを呼び出します。
getContentsCount()
インポートしたRSSの件数を調べることができます。
getContentsCount()で入手した値を参考に、表示する件数を指定してください。
getContentsURL($i)、getContentsTitle($i)、getContentsDesc($i)
記事のタイトル、URL、概要(はてなブックマークの場合は自分でつけたコメント)を呼び出します。
※$iには、最新のものから何件目かを指定します。

5) HTMLから呼び出す場合、SSIから <!--#include virtual="callRSS.php" --> と呼び出すのが便利です。

以上で作成作業は終わりです、お疲れさまでした。


RSSreaderlibの解説ページ(くじぇ工作所内)


Warning: MagpieRSS: Failed to fetch ./temp/RSRL_857560b47f697cb9ea35693c18b749c6.cgi?search=RSSreaderlib&Template=feed&IncludeBlogs=1 (HTTP Error: Invalid protocol "") in /home/hiroshikuze/kousakusyo.info/public_html/kuje/cgi/MagpieRSS/rss_fetch.inc on line 238

Warning: file_get_contents(https://kuje.kousakusyo.info/tsunezune/movabletype/mt-search.cgi?search=RSSreaderlib&Template=feed&IncludeBlogs=1): failed to open stream: HTTP request failed! HTTP/1.1 500 Internal Server Error in /home/hiroshikuze/kousakusyo.info/public_html/kuje/cgi/RSSreaderlib/RSSreaderlib.php on line 248

権利等について

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

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



[ ]



 トップページへ / RSSreaderlib


このサイトについて
© Copyright Hiroshi Kuze 1996-2018 ( hiroshikuze@gmail.com ).
Analyzed by efStat Analyzed by Log_on!