ヤフーのブログを読み込む(rss2.0)

ヤフーブログを読み込む方法を紹介しています。
当ホームページでは、PHP5を使用しています。PHP5が使用できない環境の方は、こちらのエックスサーバーをご検討下さい。当ホームページでも使用しているおすすめのサーバーです。

フィード

読み込みたいフィードのURLを調べます。
ヤフーブログは、ブログのURL / rss.xml です。そのURLをブラウザで表示させると、次のように表示されるはずです。Yahoo!ブログからのお知らせ
ご使用のフィードリーダーによっては、リーダーの登録画面に移動してしまうかもしれません。リーダーの設定を変更できるはずですので、確認して下さい。

フィード アイコンがあるはずです。

フィードのXML構造を確認する

フィードはXML形式となっています。フィードを表示したブラウザから、ソースを確認してXML構造を確認する必要があります。表示させたい必要な部分をプログラムで抜きだして使用します。
以下は、ヤフーのブログフィードのXML構造です。(rss2.0)

rss
channel
  title
  description
  link
  language
  copyright
  image
   title
   url
   description
   link
  item
    title
    description
    link
    pubDate
    category

サンプルコード

XML構造が確認できたら、あとはプログラムで抽出するだけです。
Yahoo!ブログからのお知らせを読み込んでいます。 サンプルコードの実行結果

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd">
<html lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>ヤフーブログフィードの読み込みサンプル</title>
<style type="text/css">
<!--
h4 {
	margin: 0px;
	padding: 0px;
	line-height: 200%;
}
p {
	margin: 0px;
	padding: 0px;
	line-height: 150%;
}
.gray {
	color: gray;
}
//-->
</style>
</head>
<body>
<?php

$base = 'http://blogs.yahoo.co.jp/y_j_blog/rss.xml';
$xml =  simplexml_load_file($base);

foreach($xml->channel->item as $item ){

  $title = $item->title;
  $description = $item->description;
  $description = strip_tags($description);
  $link = $item->link;
  $pubDate = $item->pubDate;
  $up = strtotime($pubDate);
  $updt = date('Y年m月d日',$up);

print <<< page
<h4><a href="{$link}" target="_blank">{$title}</a></h4>
<p><small class="gray">{$updt}投稿</small><br>{$description}</p>\n

page;
}
?>
</body>
</html>

サンプルコードの説明(PHP部分のみ)

プログラム 説明
$base = 'http://blogs.yahoo.co.jp/y_j_blog/rss.xml'; 読み込むフィードURLを$baseに代入
$xml = simplexml_load_file($base); 返ってきたXMLを$xmlに代入する。
foreach($xml->channel->item as $item ){ itemを変数$itemに代入する。item分繰り返す。
$title = $item->title;他 titleを$titleに代入する。description;以下同様
$description = strip_tags($description); $description内に<div class='wiki'>などのダグが入っているため、strip_tags()で全てのタグを取り除いています。
$up = strtotime($pubDate);
$updt = date('Y年m月d日',$up);
Wed, 26 Nov 2008 16:34:17 +0900 の日時を 2008年11月26日に変換しています。
print <<< page 以下 XMLから抜き出したデータを表示する

たったこれだけ

これだけで、フィードの内容を表示できます。

ホームページ WEBサービス API PHP プログラミング