livedoorが提供する天気予報API ”Weather Hacks” 用のクラスを作成しました。
目的
livedoor の Weather Hacks APIのうち「お天気 Web サービス」のXML を取得して PHP の配列や JSON を返します。
「お天気 Web サービス」では、今日、明日、あさっての3種類の予報を配信していますが、このクラスではデフォルトで3つすべてを取得して、連想配列で返します。
また、キャッシュ機能を実装していますので、取得した XML をパースした結果を、サーバー内に保存しておくことができ、XML のダウンロードに伴うオーバーヘッドを低減させることができます。
使用方法
コンストラクタ
はじめに、取得したい天気予報の都市を指定するための一次細区分を調べてください。
(RSS のソース内に記述されています。なんでRSS?)
取得した番号をコンストラクタに渡してオブジェクトを生成します。
$wh = new weatherHacks(86); // 潮岬
キャッシュコントロール
キャッシュを使用する場合は、以下のようにキャッシュを保存するためのディレクトリを指定してください。
$wh->setCache('/path/to/cache/dir', 3600);
第二引数の数値はキャッシュの有効期間を秒で指定しており、省略可能です。
(デフォルトで3600秒)
ディレクトリは書き込み権限がなかったり存在しないと例外エラーを投げます。
また、この setCache() メソッドでキャッシュ用ディレクトリを指定しない場合(このメソッドを実行しない場合)は、キャッシュは無効となり、リクエストのたびに XML を livedoor から取得します。
PHP の配列を取得
以下のように、getArray() メソッドを実行すると戻り値に取得した結果の配列が保存されます。
$array = $wh->getArray();
戻り値の配列は多次元の連想配列です。
実際に使用する際は、お手数ですが var_dump() するなどして、中身を確認してください。
JSON を取得
getJson() メソッドで JSON データを取得可能です。
JSON データはコールバック関数の引数として返されます。(デフォルトでは wetherHacks() です。)
$wh->getJson();
コールバック関数の関数名は、setCallback() メソッドで定義することも可能です。
$wh->setCallback('myCallback');
setCallback() でコールバック関数を定義する場合は、getJson() よりも先に実行してください。
ダウンロード
このクラスは、GitHub上でメンテナンスしていきます。
バグなどがあれば、そちらで Fork していただければ幸いです。
免責事項、ライセンス
使用される際は自己責任でお願いします。
ライセンスは、ゆるーーく、PHP ライセンスとします。