ジグソーTools
http://kuze.tsukaeru.jp/tools/index.shtml
Google  
web kuze.tsukaeru.jp
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の解説ページ(くじぇ工作所内)

  • PHPにおけるRSSリーダーの作り方について(PHP4対応)
    PHPで自家製RSSリーダーを作って、無料Webサービスで作ったデータを自分のホームページへまとめてみましょう!
  • RSSreaderlibをせっかくだからマニュアルもつけて公開します
    MagpieRSSと併用して使用する、PHP向けRSSリーダーライブラリ「RSSreaderlib」を正式公開します。新着情報の表示部分のプログラム等にご参考ください。
  • twitterで自分の投稿した記事をブログにも転載するには
    twitterの面白いところは、つぶやいた内容がRSSでまとめて取得できる点です。その内容をRSSリーダーと組み合わせる事で自分の投稿した記事をこのサイトの右カラム「twitter」のようにブログへ転載する方法をさくっと紹介します。
  • 携帯百景とPHPとRSS
    携帯電話で撮影した画像を撮影するには、携帯電話+携帯百景+RSSreaderlib+それらを連携するスクリプトの組み合わせがおすすめ。ということで、ちょっと長くなりますが連動するphpコードも含めて携帯百景との連動テクニックを一挙公開します。
  • 自分のホームページへ関連するニュースを載せるには
    自分のホームページやオンラインショップにも、『ワールドドメインニュース』のような、記事に関連するニュースを掲載してみましょう!Google newsとPHP向けRSSリーダーRSSreaderlibを利用したニュース記事の組み込み方をご紹介します。

権利等について

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

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



[ ]


 トップページへ / RSSreaderlib


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