ソースコードを読み、RSSを取得するための仕組みを(今更ながら)勉強しました。
そこでココログの場合、fetch_rss($uri)で取得できているのかどうか?どんな値が入っているのかどうか?を調べてみました。
まず素材として。ブログの女王(簡単にたどり着いたので)真●●をりさんのブログ:RSSで実験しました。
1.まずココログHELPの解説では、RSSのURIは
http://example.cocolog-nifty.com/blog/index.rdf
ブログURLの後ろにindex.rdf をつけたものと解説されています。
(ココログHELP) http://support.cocolog-nifty.com/howto/2006/03/rss_0139.html
ですが、真●●をりさんのRSSフィードのURIは
http://rss.rssad.jp/rss/nifty/manabe ・・・(1)
と出てきます。
当人のブログURL+index.rdf では、フィードの内容が見られませんでした。
と言う事で(1)を設定してみます。
2.新着を表示するソースコードの要所にecho で適当な項目内用を表示するように追加します。
$rss_arr = array(
’http://rss.rssad.jp/rss/nifty/manabe’ // ココログ
);
//表示件数
$num = 20;
foreach($rss_arr as $uri)
{
$rss = fetch_rss($uri);
$title = $rss->channel[‘title’];
$link = $rss->channel[‘link’];
// デバッグ用に表示(A)
echo “Title=”.$title.””;
echo “link=”.$link.””;
$tcnt=0;
foreach($rss->items as $item)
{
$item_title = $item[‘title’];
$item_link = $item[‘link’];
$item_date = $item[‘pubdate’];
$out_item_date = date(‘Y年n月j日’, strtotime($item_date));
// デバッグ用に表示(B)
$tcnt++;
echo “item_title”.$ycnt.”=”.$item_title.” / “.$out_item_date.””;
//これより以下は元ソースのままです。
$out_item = ‘<dt>
‘ . $item_title . ‘
</dt>
<dd style=”font-size:77%;”>
‘ . $title . ‘
</dd>
<dd style=”font-size:77%;”>’ . $out_item_date . ‘</dd>’;
$unix_time = date(‘U’, strtotime($item_date));
$item_arr[$unix_time] = $out_item;
}
}
//ソート
krsort($item_arr);
//出力
echo ‘<h2>新着’ . $num . ‘件(RSSを使って外部ブログを取得のテスト)</h2>’;
以下省略・・・
こんな感じで・・・。
3.結果
Title=眞鍋かをりのココだけの話 powered by ココログ
link=http://manabekawori.cocolog-nifty.com/blog/
item_title1=夢をありがとう / 1970年1月1日
item_title2=四国の連峰そびらにおいて / 1970年1月1日
item_title3=地震コワい / 1970年1月1日
item_title4=プロアクティ部 / 1970年1月1日
item_title5=ありがとう / 1970年1月1日
item_title6=羊蹄山 / 1970年1月1日
item_title7=ポスター掲載の件 / 1970年1月1日
item_title8=THE ICE / 1970年1月1日
item_title9=オシリーナを超えた!魅惑の完熟ボディ生尻セクシー / 1970年1月1日
item_title10=うなぎ犬 / 1970年1月1日
item_title11=に、に、妊娠!? / 1970年1月1日
item_title12=日テレのうめ / 1970年1月1日
item_title13=祐天寺 ル・サンク / 1970年1月1日
item_title14=ネルソン / 1970年1月1日
item_title15=昔話 / 1970年1月1日
日付がおかしい事が解りました。
記事のタイトルは間違いなく新着タイトルです。
表示されないのではなく、新着の上位にソートされないわけですね。
アメブロ、YAHOO、Livedoor が正しく表示されることを考えると、ココログだけ日付の取得の仕方が違うのでしょうか?