subscriber 気象庁から防災情報XMLを受信(PULL型 受信方法)
subscriber 気象庁から防災情報XMLを受信(PULL型 受信方法)
PULL型の受信方法は、RSSの仕組みと同じものです。
RSSリーダを使用すれば、容易に情報を取得することができます。
しかし、今回実施したいのは、情報を取得して任意のプログラムに連動させることが
目的ですので、単純に情報を読みたいわけではありません。
気象庁から提供されている情報はAtomフィールドになっているので
その情報からXML形式の情報を抜き取る必要があります。
まずは、Atomフィールドを取得する部分です。
単純なファイルオープン/クローズ処理ですが。
$fp = fopen("./atom/". ファイル名 . "_atom.xml", "w"); fwrite($fp, $atom_fle); fclose($fp);
次にAtomフィールドの解析です。
curl関数を使って取得します。
foreach ($feed->entry as $entry) { $url = $entry->link['href']; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_TIMEOUT, 60); curl_setopt($ch, CURLOPT_HEADER, 0); $fp = fopen("./xml/".保存ファイル名. ".xml", "w"); curl_setopt($ch, CURLOPT_FILE, $fp); curl_exec($ch); curl_close($ch); fclose($fp); }
これで、XML化が行えます。
xml化することができれば、あとはXMLを読み込んで好きなようにロジックを書くだけです。
今回、私は地震情報だけ取得して地震の発生エリア、規模を取得し
自分のメールに送信する仕組みを作ってみました。
作ってみると、日本のどこかで地震は結構な頻度で発生していることがわかり
少し、驚いています。
[前の記事]subscriber 気象庁から防災情報XMLを受信(PUSH型提供終了検討)