• BPnet
  • ビジネス
  • IT
  • テクノロジー
  • 医療
  • 建設・不動産
  • TRENDY
  • WOMAN
  • ショッピング
  • 転職
  • ナショジオ
  • 日経電子版
  • PR

  • PR

  • PR

  • PR

  • PR

PHP TIPS

7. MagpieRSSで簡単にRSSを操作しよう

2007/02/06 ITpro

ブログを始めニュースサイト等などで更新情報を配信する手段としてRSSが使わ れています。皆さんはそれらRSSをどのように活用していますか?RSSリーダを 利用してそのRSSを読むというのが一般的だと思います。既製のRSSリーダを利 用して楽しむのも良いですが、PHPを使うとこれらRSSを取得し自分好みにアレ ンジして表示するということが簡単にできます。

今回紹介するのは、それをPHPで簡単に実現することができるライブラリ 「MagpieRSS」です。

MagpieRSSは、GPLで開発されているRSSを解析するライブラリ、いわゆるRSSパ ーサです。PHPでリモートからRSSを取得して解析、キャッシュを行います。 対応しているRSSはRSS 0.9からRSS 1.0とRSS 1.0のモジュールと、RSS 2.0と Atomの一部になります。

では早速使ってみましょう。MagpieRSSのサイトからMagpieRSSをダウンロード して解凍します。出てきたファイルの中で使用するのは基本的に、 rss_cache.inc、rss_fetch.inc、rss_parse.inc、rss_utils.inc の4つのファ イルとextlibディレクトリです。

これらを同じディレクトリ階層におき下記スクリプトを書き保存して実行してく ださい。

<?php

require_once('rss_fetch.inc');
define('MAGPIE_OUTPUT_ENCODING''UTF-8');

$url 'http://www.phppro.jp/news/rss.php';
$rss fetch_rss($url);
$title $rss->channel['title'];
echo 
"<h1>$title</h1>\n";
echo 
"<dl>\n";
foreach (
$rss->items as $item ) {
    
$title $item['title'];
    
$link $item['link'];
    
$desc $item['description'];
    echo 
"<dt><a href=\"$link\">$title</a></dt>\n";
    echo 
"<dd>$desc</dd>\n";
}
echo 
"</dl>\n";

?>

PHPプロ!ニュースのRSSが読み込まれ整形されて表示されます。流れを簡単に 説明すると、fetch_rss()で指定されたURLからRSSを取得、あとは配列にデー タが入っているので欲しいものだけ取り出す。それだけです。

ちなみに、そのままでは日本語が文字化けを起こします。そのため、上記スク リプトでも行っていますが、

define('MAGPIE_OUTPUT_ENCODING', 'UTF-8');

として、エンコーディングをUTF-8に変更するのを忘れないでください。

簡単にRSSを取得し自分の好みに操作できるMagpieRSS、ブログに埋め込んだり 自作のRSSリーダを作成したり、可能性が広がるのではないでしょうか。

ちなみに、始めにも述べましたがMagpieRSSはGPLです。場合によってはプロジ ェクト内で使うには制約がきついかもしれません。その辺を十分考慮して使用 してください。

MagpieRSSのサイト: http://magpierss.sourceforge.net/


(アシアル 熊谷裕志)


この記事は、アシアルが運営するPHP開発者のためのポータル&コミュニティサイト「PHPプロ!」で毎週配信しているPHP・TIPSメーリングリストを再録したものです。
同サイトでは、他にもPHP最新ニュースや、困ったときのQ&A掲示板、初心者向けのPHP講座など、PHP開発者をサポートする情報を掲載しています。

あなたにお薦め

連載新着

連載目次を見る

今のおすすめ記事

  • 【編集長の眼】

    クラウドに移行してもコストは減らない

     「パブリッククラウドサービスに既存システムをそのまま移行してコストが大きく下がるのは、オンプレミス(自社所有)環境のインフラに無駄があるケース。コスト削減に努めてきたなら、クラウド移行の目的には含めないほうがいい」。AWSやAzureなどのクラウドの導入支援を行うコンサルタントから聞いた言葉だ。

ITpro SPECIALPR

What’s New!

経営

アプリケーション/DB/ミドルウエア

クラウド

設計/開発

サーバー/ストレージ

クライアント/OA機器

ネットワーク/通信サービス

セキュリティ

もっと見る