subscriber 気象庁から防災情報XMLを受信(PULL型 受信方法)

2019-08-19PHP

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型提供終了検討)