Authentication




Cancel OK
B!コメントする  2012-07-05 22:59:00 by old

iGoogleの代替を求めて

iGoogleが廃止されるそうです・・・

一画面で複数の情報が見れて、それをカスタマイズできる。
とても便利でした。
一時期は表示を変えて不評を買いましたが、それでも便利なものは便利なので使っていました。
でも廃止となると代替のものがない。Googleはウィジェットとかアプリがあるといってますが、ブラウザさえあればどの端末から見ても同じものという状況を作れるものは現時点ではありませんでした。

なので個人用につくってみようかと。
まずはRSSの整形とかやってみてます。
そもそもRSSの仕組み自体をあまり理解していないのですが試しにYahooの天気を取得してみた。
RSSはXMLで書かれているのでまずそれをパースする必要がある。
色々と方法はあるみたいだけど「http://php.net/manual/ja/function.simplexml-load-file.php」という関数がPHP5から使用できるのでそれを使うことにする。

  $rssurl = "http://rss.weather.yahoo.co.jp/rss/days/13.xml";
$rssdata = simplexmlloadfile($rssurl);

echo $rssdata->channel->item->title;


これで取得できる。
結果は以下になる。

【 5日(木) 東京(東京) 】 曇り - 29℃/24℃ - Yahoo!天気・災害


実際にはこの中には5つの情報が入っている。
RSSの中身はXML形式で書かれていて以下のようになっている。

<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
<channel>
<title>Yahoo!天気・災害 - 東京都の天気</title>
<link>http://rd.yahoo.co.jp/rss/l/weather/days/http://weather.yahoo.co.jp/weather/jp/13/</link>
<description>Yahoo! JAPANの天気・災害に掲載されている最新の情報を提供しています。</description>
<language>ja</language>
<copyright>Copyright (C) 2012 Yahoo Japan Corporation. All Rights Reserved.</copyright>
<lastBuildDate>Thu, 05 Jul 2012 23:19:29 +0900</lastBuildDate>
<item>
<title>【 5日(木) 東京(東京) 】 曇り - 29℃/24℃ - Yahoo!天気・災害</title>
<link>http://rd.yahoo.co.jp/rss/l/weather/days/
http://weather.yahoo.co.jp/weather/jp/13/4410.html?d=20120705</link>
<description>曇り - 29℃/24℃</description>
<pubDate>Thu, 05 Jul 2012 17:00:00 +0900</pubDate>
</item>
<item>
<title>【 5日(木) 伊豆諸島北部(大島) 】 曇り - 26℃/24℃ - Yahoo!天気・災害</title>
<link>http://rd.yahoo.co.jp/rss/l/weather/days/http://weather.yahoo.co.jp/weather/jp/13/4420.html?d=20120705</link>
<description>曇り - 26℃/24℃</description>
<pubDate>Thu, 05 Jul 2012 17:00:00 +0900</pubDate>
</item>
<item>
<title>【 5日(木) 伊豆諸島南部(八丈島) 】 曇り - 25℃/24℃ - Yahoo!天気・災害</title>
<link>http://rd.yahoo.co.jp/rss/l/weather/days/
http://weather.yahoo.co.jp/weather/jp/13/4430.html?d=20120705</link>
<description>曇り - 25℃/24℃</description>
<pubDate>Thu, 05 Jul 2012 17:00:00 +0900</pubDate>
</item>
<item>
<title>【 5日(木) 小笠原諸島(父島) 】 晴れ - 30℃/25℃ - Yahoo!天気・災害</title>
<link>http://rd.yahoo.co.jp/rss/l/weather/days/http://weather.yahoo.co.jp/weather/jp/13/4440.html?d=20120705</link>
<description>晴れ - 30℃/25℃</description>
<pubDate>Thu, 05 Jul 2012 17:00:00 +0900</pubDate>
</item>
<item>
<title>[PR] tenki.jpでは10日間予報を掲載中</title>
<link>http://rd.yahoo.co.jp/rss/l/weather/jwa/SIG=117hmpdnn/
http://tenki.jp/?.tp=20120521194848</link>
<description>tenki.jpでは10日間予報を掲載中</description>
<pubDate>Mon, 21 May 2012 19:48:00 +0900</pubDate>
</item>
</channel>
</rss>


なので少し手を加えて中身の情報を全部取ってみる。
コードは以下

  $rssurl = "http://rss.weather.yahoo.co.jp/rss/days/13.xml";
$targetrss = simplexmlloadfile($rssurl);
$take
out = 5;
$output = "";
for ($i=0; $i < $takeout; $i++){
echo "<li>";
echo "<a >channel->item[$i]->link;
echo "\">";
echo $target
rss->channel->item[$i]->title;
echo "</a>\n";
echo $target_rss->channel->item[$i]->description;
echo "</li>";
}


取得結果は以下になる。

【 5日(木) 東京(東京) 】 曇り - 29℃/24℃ - Yahoo!天気・災害 曇り - 29℃/24℃
【 5日(木) 伊豆諸島北部(大島) 】 曇り - 26℃/24℃ - Yahoo!天気・災害 曇り - 26℃/24℃
【 5日(木) 伊豆諸島南部(八丈島) 】 曇り - 25℃/24℃ - Yahoo!天気・災害 曇り - 25℃/24℃
【 5日(木) 小笠原諸島(父島) 】 晴れ - 30℃/25℃ - Yahoo!天気・災害 晴れ - 30℃/25℃
[PR] tenki.jpでは10日間予報を掲載中 tenki.jpでは10日間予報を掲載中


意外と簡単に中身を取得できた。
PHPって本当にたいていの関数があるから便利ではある。
あとはこれを自動で更新したり、追加やなんかのプロセスを加えてやればiGoogleほど簡単ではないけど似たようなものが出来上がる。


Google  

  • コメント
  • コメントはまだありません