オレオレRSSをPHPで出力して読み込んでみる (PHP AdventCalender2012 5日目)

PHP AdventCalender2012 5日目担当のたがみ(@DAI199)です。

4日目担当の@mawatarinさんの記事、とても丁寧で参考になります!
あんな丁寧な記事が書けるように日々努力しようと思いました。

@mawatarinさんの記事はこちら

僕自身CakePHPをよく使っていて、アプリもCakeで作っているため、検索を実装するときは参考にしたいと思います!

さて、今まで書いた方々のレベルが高くて、こんな内容でいいのかと申し訳ない気持ちになりますが、せっかくのお祭りのようなものなので、普段なかなかしないことをしてみようと思います。

今回はオレオレRSS(私が読んだ記事をひたすら更新するRSS)を作成してそれをGoogleReaderなりで読み込んでみたいと思います。

なぜいまさらRSS?

なぜいまさら私がRSSをやろうと思ったのかというと、約8ヶ月前くらいまで私の主な情報源はTwitter、Facebookでした。
当時はTwitterのタイムラインを全て追い、僕が当時フォローしていた約300人のつぶやきを全て拾っていました。
そのためとても情報通でしたが、その分時間を使いました。

時間をあまり使わず、情報収集する効率のよい方法はないか。

そんなときに目をつけたのがRSSでした。
今では情報収集の6割程度はRSSで行い、それを補完する形でTwitterやFacebookを使うようになりました。
それだけ僕の中ではRSSというのは衝撃なものでした。

ただよく考えてみると、RSSがXMLなのはわかってるけど作ってみたことないな・・・と感じていたため、今回この機会に勉強させていただいて、その方法を共有しようと思いました。
これが僕が今回RSSを題材に選んだ理由です。

とりあえずRSSを出力してみる

それでは、ある程度簡単なのはわかっているのですが、RSSを実際に出力してみましょう!

<?php
// ヘッダーを出力する
header("Content-type: text/xml;charset=utf-8");
echo '<?xml version="1.0" encoding="UTF-8"?>';

// サイトの情報を書き込む
echo '
<rss version="2.0">
<channel>
<title>tagamidaiki.com のオレオレRSS</title>
<link>https://tagamidaiki.com</link>
<description>FacebookのGraphAPIやCakePHP,JavaScriptなどの記事を更新していきます。</description>
<category>php, graph api, facebook, cakephp</category>
<generator>@DAI199</generator>
<webMaster>@DAI199</webMaster>
';

// 記事の内容を更新
for(ループさせる)
{
echo '
<item>
<title>Test'.$i.'</title>
<link>https://tagamidaiki.com</link>
<description>TestTest</description>
<author>@DAI199</author>
<category>php</category>
</item>
';
}

echo '
</channel>
</rss>
';
?>

( ゚д゚)
思ったより4倍くらい簡単だった。。
よく考えてみなくてもただタグ組み立てるだけですもんね。。。

それをGoogleReaderで読み込んでみる

それでは本当にこれを読み込んでくれるのか。
GoogleReaderで読み込んでみました。

おお!すごい!ちゃんと読み込んだ!
小さな感動を味わいました。よかったです。

今回の記事で本当にやりたかったことは?

今回の記事で本当にやりたかったことを書いてこの記事を終わろうと思います。

本当はFacebookログインして、そこには自分の読んだ記事を追加するフォームがあって、そこに情報を打ち込むとその人のRSSが作成される、みたいなことがしたかったです。
用はTwitterやFacebookでキュレーションしている情報たちをRSSに集めてそれらを一覧にすることでキュレーションプラットフォームみたいなものを作りたかったのです。
これ、結構いけると思うのですがどうでしょうか。
時間があるときになんとか作ってみたいアプリの1つです。

終わりに

ほとんどPHPのこと、関係なくて申し訳ありません。
RSSどうやって作成してるんだろう?って思ってる僕みたいな人のためになれれば幸いです!
いつかリベンジで上記のアプリを作ってみたいです。

それでは明日のAdventCalenderも楽しみです! 次の方、よろしくお願いします!!

CakePHP AdventCalender2012 1日目に参加しました!