« MovableTypeでPHPを使う♪ | メイン | Mac mini 結局買った »

MovableTypeで外部のRSSを取得♪ MovableType

MovableTypeで外部のRSSを取得して表示する方法ですが、
まぁ、色々とやり方はあるのですが
PHPのMagpieRSSを使って
やってみました。
PHPの導入の仕方は
MovableTypeでPHPを使う♪
でも見て下さい。(導入ってほどではないけど・・・)

で、MagpieRSSで検索すると色々やり方は出てくるのですが
ちょっといじったりしたのでその辺も含めて・・・
  1. http://magpierss.sourceforge.net/ から MagpieRSSをダウンロード
  2. magpierss-***.tar.gz を解凍
  3. 拡張子が .inc のファイルと extlib フォルダを 適当な場所にアップロード
    解説サイトなどだと分かりやすいように
    index.phpと同じ場所におく
    と、書かれてますが、どこでも平気です。
    (俺はrssというディレクトリを作ってそこにぶち込みました。)
  4. 上記アップロードしたディレクトリにcacheという名前のディレクトリを作る
以上でMagpieRSSを使う準備完了です。

で、まぁメインページにゴリゴリ書いても動くのですが、
なんとなく嫌なので別ファイルに書いてそれをアップします。
例えばrss.phpとかファイルを作ってその中に
<?php
require_once 'rss/rss_fetch.inc';
define('MAGPIE_OUTPUT_ENCODING', 'UTF-8');
$url = 'http://d.hatena.ne.jp/Yoshiori/rss';
$rss = @fetch_rss($url);
if ($rss && !$rss->ERROR) {
	drawRSS($rss);
}else{
	echo "取得できませんでした。";
}
function drawRSS($rss){
	$items = array_slice($rss->items, 0, 10); 
	echo "<ul>\n";
	foreach ($items as $item ) {
		$title = $item[title];
		$title = mb_convert_encoding($title, "utf-8", "auto");
		$url = $item[link];
		$description = $item[description];
		$description = mb_convert_encoding($description, "utf-8", "auto");
		echo "<li><a href=\"$url\">$title</a></li>\n$description";
	}
	echo "</ul>\n";
}
?>
って書いて好きなところにアップロード。
で、メインページのテンプレートの読み込みたいところに
<?php
require("rss.php");
?>
って書いて再構築すればOK
あ、require()の中身には
rss.phpをアップした場所を書いてね♪


ちなみにソースを少しだけ解説すると・・・

require_once 'rss/rss_fetch.inc';
これで、まずMagpieRSSを読み込んでます。
$url = 'http://d.hatena.ne.jp/Yoshiori/rss';
ここで読み込みたいRSSを指定。
$rss = @fetch_rss($url);
if ($rss && !$rss->ERROR) {
	drawRSS($rss);
}else{
	echo "取得できませんでした。";
}
ここでfetch_rss()でrssを読み込んでるのですが、
関数の頭に@をつけてエラーメッセージを表示しないようにしてます。
で、その後のif分でエラーかどうかを判別して
エラーだったら「取得できませんでした。」と表示してます。

$items = array_slice($rss->items, 0, 10); 
ここでitemの配列を取得してるのですが、
array_slice()を使って10個だけ持ってきてます。
全部取得したい場合は
$items = $rss->items;
とか、適当に代えちゃってください。


ちなみに読み込んでるRSSのタイトルを表示したいとか個別の更新時間が欲しいとかは
$rss->channel['title']
$item['dc']['date']
こんな感じで取得できるので、
その辺はマニュアル見てください。

追記:
文字化けする人は

define('MAGPIE_OUTPUT_ENCODING', 'UTF-8');
の部分を自分のサイトの文字コードに変えてね♪

トラックバック

このエントリーのトラックバックURL:

TBスパムを弾く為、言及の無いTBは受け付けていません。

この一覧は、次のエントリーを参照しています: :

» なんとなくcss from Yoshioriの日記
MovableTypeで外部のRSSを取得♪ いま、仕事で触ってるcssがいけて無くて ストレスがたまってたので 家に帰って... [詳しくはこちら]

» Voxのお題に答えたエントリーをMovableTypeで表示♪ from Yoshioriの日記
MovableTypeで外部のRSSを取得♪ というわけで、「Vox」やってみたのですが、 せっかく答えたお題をこっちのブロ... [詳しくはこちら]

» RSSをサイトコンテンツに from くぅ〜!
MovableTypeで外部のRSSを取得♪ 担当しているサイトをリニューアルした。普通のHPにブログのRSSをのせたいとのことだったので、「あ〜よく見るヤツ。」でもいったいどうしてるんだろう? 少... [詳しくはこちら]

コメントを投稿

(いままで、ここでコメントしたことがないときは、コメントを表示する前にこのブログのオーナーの承認が必要になることがあります。承認されるまではコメントは表示されません。そのときはしばらく待ってください。)

人気のエントリー

▼すべて表示
generated by レビュー・ポスター

あわせて読みたい

あわせて読みたい