外部のサイトのFeedを受信してリストを生成する(1)
外部のサイトのフィード情報を受信してリストを作成するサンプルです。
この手法では、ブログの再構築をしなくても、ページを観覧した際に、常に最新の情報を取得できます。
必要なもの
以下のファイルが必要です。
- rssv2.php
- RSS.php
- Parser.php
- PEAR.php
rssv.php、rssv2.phpの入手先や詳しい資料は以下サイトです。
RSS.php、Parser.php、PEAR.phpの公式サイトは以下です。
- http://pear.php.net/package/XML_RSS/download
- http://pear.php.net/package/XML_Parser/download
- http://pear.php.net/package/PEAR/download
ファイルの設置
以下CORESERVERのs27サーバー場合の例です。
環境により、手順や結果が異なる場合があります。
- ブログの設置されている下へ、xmlという名前のディレクトリを作成。パーミッションを701と変更。
- そのxmlという名前のディレクトリへ、rssv2.php、RSS.php、Parser.php、PEAR.phpファイルをコピーし、パーミッションを604とする。
- .htaccessファイルへ AddHandler application/x-httpd-phpcgi .php と記述する。その.htaccessファイルをxmlディレクトリへコピーする。CORESERVERの場合はこちらも参照してください。
- RSSより情報を引っ張ってきて埋め込みたい箇所へ以下のように記述します。以下はsix apartの3種類のFeed情報の取得を列挙してみました。
<?php
include("http://www.mtde.info/xml/rssv2.php?u=http://www.sixapart.jp/movabletype/news/index.xml");
include("http://www.mtde.info/xml/rssv2.php?u=http://www.sixapart.jp/index.xml");
include("http://www.mtde.info/xml/rssv2.php?u=http://www.sixapart.jp/pronet/developers/index.xml");
?>
あとは、再構築すればいいです。
※おなじCORESERVERでも、RSS.php、Parser.php、PEAR.phpをアップロードする必要がない場合もあります。.htaccessの内容も、サンプルが絶対ではありません。
rssv2.phpのカスタマイズ例
rssv2.phpを用い、タイトルだけの表示にしたい場合は、rssv2.phpの中の$descを削除すればいいです。
以下、rssv2.php改造例です。
<?php
require "RSS.php";
//PEAR導入済みの場合↓
//require "XML/RSS.php";
// URL指定
$rdf = $_GET['u'];
$r =& new XML_RSS($rdf);
$r->parse();
if (!$ch = $r->getChannelInfo()) echo "データが取得でけまへん";
$site_title = mb_convert_encoding($ch['title'], "UTF-8", "auto");
$site_title = htmlspecialchars($site_title);
$site_link = $ch['link'];
// ヘッダ
echo <<<A
<h3><a href="$site_link">$site_title</a></h3>
<ul>
A;
$num = ($_GET['n']) ? $_GET['n'] : count($r->getItems());
for ($i=0; $i<$num; $i++) {
$val = $r->getItems();
$title = mb_convert_encoding(strip_tags($val[$i]['title']), "UTF-8", "UTF-8,EUC-JP,SJIS");
//$desc = mb_convert_encoding(strip_tags($val[$i]['description']), "UTF-8", "UTF-8,EUC-JP,SJIS");
$link = htmlspecialchars($val[$i]['link']);
$date = $val[$i]['dc:date'];
// 内容
echo <<<B
<li><a href="$link">$title</a></li>
B;
}
//フッタ
echo <<<C
</ul>
C;
?>
このページにサンプルコードを貼った結果
Six Apart - Movable Type News
- 年末年始の Movable Type ユーザーサポートについてのお知らせ
- [重要] セキュリティアップデート Movable Type 4.23 の提供を開始
- Movable Type 4.2 に閲覧制限機能を追加する AccessControl プラグイン
- [重要] セキュリティアップデート Movable Type 4.22 の提供を開始
- Movable Type 7周年記念キャンペーン実施します
- アフィリエイトキャンペーン実施中です(10月10日まで)
- 2008年8月7日に発表したセキュリティアップデートの正式版提供開始
- [重要] Movable Type 4.21 出荷開始
- MT4.1x とカスタムフィールドをお使いの場合は MT4.2 へのアップグレードはおまちください
- Movable Type 4.2 出荷開始
- [重要] Movable Type 4.2 RC5 とセキュリティアップデートの提供を開始
- Movable Type Developer Conference を開催します
- 重要 : Movable Type 4 セキュリティアップデートの提供を開始
- もれなく書籍プレゼント!商用CMS 3年連続1位キャンペーン実施中
- Movable Type 4.2 発表記念 プレゼントキャンペーン実施中
Six Apart - News
- 今年影響力のあったブログ記事を選ぶ「アルファブロガー・アワード2008:ブログ記事大賞」を開催
- スカイアークシステム、イントラブログ・ソリューションをASPモデルで提供開始
- 外為どっとコム、コーポレートサイトのFXブログにMovable Typeを採用
- Web Designing 2009年1月号に、Movable Type が特集されました。
- 丸井グループ、Movable Typeを活用した社内SNSで売場参加型コミュニケーション基盤を構築
- アクセストレード、バリューコマースアフィリエイトプログラム終了のお知らせ
- 株式会社アイロベックスが、Movable Type を使った、カルチャースクール向けCMS、「CMS + AD for School」を発表
- FOOD ACTION NIPPONの公式サイト内に「新聞ブログ」ポータルサイトをオープン
- シックス・アパートが、ブロガー向け無料コメント・サービス「TypePad Connect」を発表
- シックス・アパートが、イントラブログ・ソリューションを発表
- シックス・アパートのパートナー制度 『ProNet』 登録企業数が300社を突破
- TypePad ビジネスクラス、TypePad ホームページおまかせパックのアフィリエイトプログラム開始
- シックス・アパートが、モバイル・コミュニティ・ソリューションを発表
- シックス・アパート設立5周年記念イベントを開催します
- OpenIDファウンデーション・ジャパンが発足
技術情報提供ブログ
- Movable Type 4.1 に関する技術情報・ドキュメント
- Movable Type 4 に関するコンテンツのご紹介
- サイドバーにアイテムリストを利用したサムネイルを表示する
- Movable Type Hack-a-thon が開催されます
- アイテム管理機能で追加された Movable Type テンプレートタグ
- ブログ記事の書き方もお好みで
- Movable Type 4 で reCAPTCHA を利用する
- Movable Type 4 の開発と、ベータテスト、オープンソースについて
- インポートの強化だけじゃない!バックアップ機能も追加された Movable Type 4
- CAPTCHA 認証機能も簡単設定可能に
- 強化された Movable Type 4 のテンプレートタグ
- Movable Type 4 でダイナミックパブリッシングを使用する
- もっと簡単になった Movable Type 4 のインストール
- コメントの返信も簡単に表示も解りやすく
- Movable Type 4 のテンプレートチェック機能で作業効率アップ!
- ページ先頭へ
- 前のエントリ: Feedを受信してリストを生成する(2)
- 次のエントリ: 外部のサイトのFeedを受信してリストを生成する(2)
- カテゴリ:Feed関連サンプル