「Weather Hacks(気象データ配信サービス)」を使用するとXML形式で天気予報を取得できます。無料&登録不要でお手軽に利用できます。
PHPを使用して「Weather Hacks(気象データ配信サービス)」にアクセスしてみます。取得する情報は横浜の明日の天気です。
リクエスト
http://weather.livedoor.com/forecast/webservice/rest/v1?city=70&day=tomorrow
実行結果
| パラメータ名 | 説明 | 設定値 |
| city | 地域を指定します。 | ~北海道地方~道北 稚内 = 1 旭川 = 2 留萌 = 3 ~北海道地方~道央 札幌 = 4 岩見沢 = 5 倶知安 = 6 ~北海道地方~道東 網走 = 7 北見 = 8 紋別 = 9 根室 = 10 釧路 = 11 帯広 = 12 ~北海道地方~道南 室蘭 = 13 浦河 = 14 函館 = 15 江差 = 16 ~東北地方~青森県 青森 = 17 むつ = 18 八戸 = 19 ~東北地方~秋田県 秋田 = 20 横手 = 21 ~東北地方~岩手県 盛岡 = 22 宮古 = 23 大船渡 = 24 ~東北地方~宮城県 仙台 = 25 白石 = 26 ~東北地方~山形県 山形 = 27 米沢 = 28 酒田 = 29 新庄 = 30 ~東北地方~福島県 福島 = 31 小名浜 = 32 若松 = 33 ~関東地方~茨城県 水戸 = 54 土浦 = 55 ~関東地方~栃木県 宇都宮 = 56 大田原 = 57 ~関東地方~群馬県 前橋 = 58 みなかみ = 59 ~関東地方~埼玉県 さいたま = 60 熊谷 = 61 秩父 = 62 ~関東地方~東京都 東京 = 63 大島 = 64 八丈島 = 65 父島 = 66 ~関東地方~千葉県 千葉 = 67 銚子 = 68 館山 = 69 ~関東地方~神奈川県 横浜 = 70 小田原 = 71 ~関東地方~山梨県 甲府 = 75 河口湖 = 76 ~信越・北陸地方~富山県 富山 = 44 伏木 = 45 ~信越・北陸地方~石川県 金沢 = 46 輪島 = 47 ~信越・北陸地方~福井県 福井 = 48 敦賀 = 49 ~信越・北陸地方~新潟県 新潟 = 50 長岡 = 51 高田 = 52 相川 = 53 ~信越・北陸地方~長野県 長野 = 72 松本 = 73 飯田 = 74 ~東海地方~静岡県 静岡 = 34 網代 = 35 三島 = 36 浜松 = 37 ~東海地方~愛知県 名古屋 = 38 豊橋 = 39 ~東海地方~岐阜県 岐阜 = 40 高山 = 41 ~東海地方~三重県 津 = 42 尾鷲 = 43 ~近畿地方~滋賀県 大津 = 77 彦根 = 78 ~近畿地方~京都府 京都 = 79 舞鶴 = 80 ~近畿地方~大阪府 大阪 = 81 ~近畿地方~兵庫県 神戸 = 82 豊岡 = 83 ~近畿地方~奈良県 奈良 = 84 風屋 = 85 ~近畿地方~和歌山県 和歌山 = 86 潮岬 = 87 ~中国地方~岡山県 岡山 = 88 津山 = 89 ~中国地方~広島県 広島 = 90 庄原 = 91 ~中国地方~島根県 松江 = 92 浜田 = 93 西郷 = 94 ~中国地方~鳥取県 鳥取 = 95 米子 = 96 ~中国地方~山口県 下関 = 97 山口 = 98 柳井 = 99 萩 = 100 ~四国地方~徳島県 徳島 = 101 日和佐 = 102 ~四国地方~香川県 高松 = 103 ~四国地方~愛媛県 松山 = 104 新居浜 = 105 宇和島 = 106 ~四国地方~高知県 高知 = 107 室戸 = 108 清水 = 109 ~九州地方~福岡県 福岡 = 110 八幡 = 111 飯塚 = 112 久留米 = 113 ~九州地方~大分県 大分 = 114 中津 = 115 日田 = 116 佐伯 = 117 ~九州地方~長崎県 長崎 = 118 佐世保 = 119 厳原 = 120 福江 = 121 ~九州地方~佐賀県 佐賀 = 122 伊万里 = 123 ~九州地方~熊本県 熊本 = 124 阿蘇乙姫 = 125 牛深 = 126 人吉 = 127 ~九州地方~宮崎県 宮崎 = 128 延岡 = 129 都城 = 130 高千穂 = 131 ~九州地方~鹿児島県 鹿児島 = 132 鹿屋 = 133 種子島 = 134 名瀬 = 135 ~南西諸島地方~沖縄県 那覇 = 136 名護 = 137 久米島 = 138 南大東島 = 139 宮古島 = 140 石垣島 = 141 与那国島 = 142 |
| day | 予報日を指定します。 | today:今日 tomorow:明日 dayaftertomorow:明後日 |
PHP simpleXML(※エラー処理省略)
<?php$req = "http://weather.livedoor.com/forecast/webservice/rest/v1?city=70&day=tomorrow"; $xml = simplexml_load_file($req);echo <<<HTML <p>タイトル:{$xml->title}</p> <p>天気:{$xml->telop}</p> <p>説明:{$xml->description}</p> <p><a href="{$xml->image->link}"><img src="{$xml->image->url}"/></p> <p>最高気温:{$xml->temperature->max->celsius}</p> <p>最低気温:{$xml->temperature->min->celsius}</p> HTML; ?> PHP PEAR(※エラー処理省略)
<?php require_once 'XML/Unserializer.php'; $req = "http://weather.livedoor.com/forecast/webservice/rest/v1?city=70&day=tomorrow"; $xml = file_get_contents($req); $uns =& new XML_Unserializer(); $uns->setOption('parseAttributes', TRUE); $uns->unserialize($xml); $res = $uns->getUnserializedData(); echo <<<HTML <p>タイトル:{$res['title']}</p> <p>天気:{$res['telop']}</p> <p>説明:{$res['description']}</p> <p><a href="{$res['image']['link']}"><img src="{$res['image']['url']}"/></p> <p>最高気温:{$res['temperature']['max']['celsius']}</p> <p>最低気温:{$res['temperature']['min']['celsius']}</p>HTML;?>


コメントする