サンプル・プログラム
解説:観測地点の緯度・経度
0064: //予報値地点データファイル
0065: $path = 'ini';
0066: if (! file_exists(FILE_SPOTS)) {
0067: $data = file_get_contents(FILE_SPOTS);
0068: @mkdir($path);
0069: $outfp = fopen(FILE_SPOTS, 'wb');
0070: fwrite($outfp, $data);
0071: fclose($outfp);
0072: }
0194: /**
0195: * 予報地点情報を読み込む
0196: * @return int地点数
0197: */
0198: function readSpots() {
0199: global $Items_spots, $Items_pref;
0200:
0201: //XML読み込み
0202: $options = array('parseAttributes' => TRUE);
0203: $xml = new XML_Unserializer($options);
0204: $xml_data = @file_get_contents(FILE_SPOTS);
0205: $xml->unserialize($xml_data, FALSE);
0206: $Items_spots = $xml->getUnserializedData();
0207:
0208: //予報地点情報から都道府県情報を取り出す
0209: $i = 1;
0210: foreach ($Items_spots['spot'] as $key=>$item) {
0211: $arr = preg_split('/[ ]+/', $item['query']);
0212: if (isset($arr[0])) {
0213: $pref = $arr[0];
0214: if (array_search(internal2sjis($pref), $Items_pref) == FALSE) {
0215: $Items_pref[$i] = internal2sjis($pref);
0216: $i++;
0217: }
0218: }
0219: }
0220:
0221: return count($Items_spots);
0222: }
観測地点のリストは、「PHPで地図で指定した場所の天気予報を求める」で作成したXML形式ファイル "FILE_SPOTS" をそのまま利用する。
まず、mycalendarwin.exe の中にパッケージングされたXML形式ファイル "FILE_SPOTS" を、ユーザー関数 [#initialize:initialize] の中で、アイコンなどと同様に、ローカルドライブに展開する。
展開したファイルを、ユーザー関数 [#readSpots:readSpots] を使って配列に読み込む。
XMLのパーシングには、いままで同様、PEAR::XML_Unserializer を利用する。そのままではWinBinderに通らないので、若干、手を加えている。
コンボボックスで選択した観測地点は、「PHPで Windows用週間天気予報プログラムを作る」と同じ方法で、ローカルドライブに保存しておき、次回からはその設定値を読み込むようにしてある。
コンパイル
参考サイト
- PHPで日出没・月出没・月齢・潮を計算:ぱふぅ家のホームページ
- PHPで地図で指定した場所の天気予報を求める:ぱふぅ家のホームページ