雖然這個氣象這個話題已經很老了...不過對我來說是個有趣的練習XD
首先,氣象資訊來源還是得用"借"的(這應該真的沒別的辦法不去借吧@@')
我的需求是只要部份都市和全台,所以只借了這兩份資料
ftp://ftpsv.cwb.gov.tw/pub/forecast/W010.txtftp://ftpsv.cwb.gov.tw/pub/forecast/W003.txt只要把資料轉成XML格式~就可以給其他的平台應用了~(比如FLASH)
反正也不是什麼很厲害的東西,就貼出來給大家參考好了
(寫的很嫩...看完之後拳頭握到流血的話還請見諒...)
===============以下程式碼=============
<?php
$UPnum=array('0','1','2','3','4','5','6','7','8','9','-');
$DOWnum=array('0','1','2','3','4','5','6','7','8','9','-');
$fp_jp = file_get_contents("
ftp://ftpsv.cwb.gov.tw/pub/forecast/W010.txt");
$weather_jp = explode("*",$fp_jp);
for ($i = 1; $i <= 2; $i++) {
$SEL="weather_tw_".$i;
$$SEL = str_replace($UPnum,$DOWnum,str_replace(' ','',$weather_jp[$i]));
$SEL_OK[$i] = explode(" ",$$SEL);
}
$fp_tw = file_get_contents("
ftp://ftpsv.cwb.gov.tw/pub/forecast/W003.txt");
$weather_tw = explode("*",$fp_tw);
for ($i = 3; $i <= 22; $i++) {
$SEL="weather_tw_".$i;
$vowels = array("市", "北海岸", "地區", "半島", " 0%", "10%", "20%", "30%", "40%", "50%", "60%", "70%", "80% ", "90%", "100%");
$$SEL = str_replace($UPnum,$DOWnum,str_replace(' ','',str_replace($vowels,' ',$weather_tw[$i])));
$SEL_OK[$i] = explode(" ",$$SEL);
}
?>
<?php
echo "<?xml version=\"1.0\" encoding=\"big5\"?>\n";
echo "<items>\n";
for($i = 1; $i <= 2; $i++)
{
echo "<item>\n";
echo "<name>".$SEL_OK[$i][0]."</name>\n";
echo "<sky>".$SEL_OK[$i][4]."</sky>\n";
echo "<temperature>".$SEL_OK[$i][8]."℃".trim($SEL_OK[$i][9])."℃</temperature>\n";
echo "</item>\n";
}
for($i = 3; $i <= 22; $i++)
{
echo "<item>\n";
echo "<name>".$SEL_OK[$i][0]."</name>\n";
echo "<sky>".$SEL_OK[$i][1]."</sky>\n";
echo "<temperature>".$SEL_OK[$i][4]."℃".$SEL_OK[$i][5].trim($SEL_OK[$i][6])."℃</temperature>\n";
echo "</item>\n";
}
echo "</items>\n";
?>
================================================
大部分都只是在做字串取代而已,其實也可以不用去作,一切依個人需求而定
我覺得比較麻煩的部分就是"氣候名詞"和要對應的"氣候圖片"
如果連圖片都盜連就真的太超過了...所以慢慢自己做圖中...
只是我不知道到底有多少氣候名稱組合啊...中央氣象局有氣候名稱列表嗎?@@"