|
「PHP で天気予報を求める」では、livedoor の WeatherHacks を用いて天気予報を表示している。ところが、この API では今日を含めて 3 日間の天気予報しか表示しない。一方、livedoor 天気情報 では、RSS 形式で 1週間分の各地の予報を配信している。 そこで今回は、この RSS を取得し、任意の都市の週間天気予報を表示するプログラムを作ってみることにする。 |
「livedoor天気情報」の天気予報情報 |
|
|
livedoor 天気情報は、RSS 2.0 形式で天気予報情報を配信している。 各地点の RSS の URL は「全国の地点定義表(RSS)」に示されている URL である。 |
|
サンプル・プログラム |
|
サンプル・プログラムの解説:天気予報情報の取り出し |
|
|
入力処理については、「PHP で天気予報を求める」とほぼ同じである。
WebAPI の代わりに、RSS から情報を取り出すユーザー関数 getWeeklyWeather を用意した。 RSS 2.0 の仕様にしたがって、情報を配列変数に格納している。
0215: /** |
|
サンプル・プログラムの解説:出力処理 |
|
|
今回は、画面に出力するコンテンツを $html_header, $html_outstr, $html_footer の 3 つに分割し、必要に応じて表示するようにした。週間予報の table が含まれているのは $html_outstr である。
なぜ、このようなロジックにしたかというと、コマンドラインで WeeklyWeather.php?id=63のように ID を指定することで、ある地点の天気予報 table のみを表示させたかったからである。つまり、このスクリプトをホームページやブログの一部として組み込むことで、今日から 1週間分の天気予報を表示するガジェットになる。 また、親となるホームページやブログの文字コードセットにあわせ、charset 変数で出力文字コードを変更できるようにした。たとえば WeeklyWeather.php?id=6&charset=SJISとすると、東京の週間天気予報をシフト JIS で出力することができる。
0473: //ID指定の場合は結果のみ出力 |
|
参考書籍 |
|
|
|
参考サイト |
|
|
|
|
|
|
|
|
2008年11月12日更新
写真と記事 (C)2008 studio pahoo
(※)本ページはリンクフリーですが、複製・転載時にはご一報ください。 |