DAINASHI YESTERDAY

2012.09.04

PHPを使って外部ブログの記事一覧を表示する

20120904-1200x800

前回「WordPressに特定のカテゴリーの記事一覧を表示する方法」をご紹介しましたが、今回はCMSではない、通常のホームページに外部ブログ・ホームページの更新情報を一覧表示する方法をご紹介します。

MagpieRSSの準備

外部ブログの記事一覧を取得するには、RSSフィードをJavaScriptやPHPで読み込む方法が一般的です。今回はMagpieRSSというPHPプログラムを使ってみたいと思います。

メニューバーの「Download」をクリックし、次のページで「Download magpierss-0.72.tar.gz (36.5 kB)」をダウンロード→解凍します。tar.gzファイルの解凍は、アイコンのダブルクリックでは上手く行かない場合があるみたいなので、そういうときはLhaplusなどのショートカットアイコンにtar.gzファイルのアイコンをドラッグ&ドロップする方法を試してみてください。

無事解凍できると、「magpierss-0.72」フォルダができます。中にある

  • extlibフォルダ
  • rss_cache.inc(INCファイル)
  • rss_fetch.inc(INCファイル)
  • rss_parse.inc(INCファイル)
  • rss_utils.inc(INCファイル)

の5つをコピーします。

次に新しく「magpie」というフォルダを作り、先ほどコピーした5つを貼り付けます。最後に、キャッシュを保存するために「cache」という名前のフォルダを作り、これも「magpie」フォルダ内に入れます。「magpie」フォルダをサーバーのルートディレクトリ(index.htmlがある階層)に「magpie」フォルダをアップロードすれば準備完了です。

phpファイルを作成する

外部ブログの記事一覧を表示するページをPHPファイルで作ります。多くの場合、外部ブログの記事一覧とかはトップページに表示するのではないかと思うので、今回は元からある「index.html」ファイルを「index.php」ファイルに変換するという流れで行きたいと思います。

「index.html」ファイルをTerapadで開きます。文字コードの関係で、Dreamweaverなどで開く→ 保存すると文字化けを起こしますので、Terapad秀丸PHPエディタなどを使用します。

外部ブログの記事一覧を表示したい箇所に下記コードを挿入します。

<?php
require_once("magpie/rss_fetch.inc");
define("MAGPIE_CACHE_AGE", 60*5);
define("MAGPIE_CACHE_DIR", "cache/");
define("MAGPIE_OUTPUT_ENCODING", "UTF-8");
$url = "http://wild-cats.jp/blog/feed/"; // RSSフィードのURL
$rss = fetch_rss($url);
$max = 4; // 一覧表示する記事数
$i=1;
foreach ($rss->items as $item) {
$href = $item['link'];
$title = mb_convert_encoding($item['title'], "UTF-8", "auto");
$date = $item["pubdate"];
$date = date("Y.m.d",strtotime($date));
echo "<dl>";
echo "<dt>$date</dt>";
echo "<dd><a href="$href">$title</a></dd>";
echo "</dl>";
$i++;
if($i > $max){break;}
}
?>

上記コードでは外部ブログの記事タイトルを<dl>タグでリスト表示しています。<ul>タグでリスト化したい場合は上記の

echo &quot;&lt;dl&gt;&quot;;
echo &quot;&lt;dt&gt;$date&lt;/dt&gt;&quot;;
echo &quot;&lt;dd&gt;&lt;a href=&quot;$href&quot;&gt;$title&lt;/a&gt;&lt;/dd&gt;&quot;;
echo &quot;&lt;/dl&gt;&quot;;

という部分を編集してください。最後にファイル名を「index.html」から「index.php」に変更して保存し、サーバーにアップロードすれば完了です。

ここでは日付とタイトルを一覧表示するように設定していますが、記事本文を表示することもできます。その他さらに詳しい設定方法は「MagpieRSSを使って外部サイトのfeedを読み込む(ウェブ、ショウジン)」で分かりやすく解説してくれていますので、参考にしてみてください。

投稿者: