我的烏拉拉練功坊

請來參觀移植到 Google Firebase 的成績 https://oolala.xyz/ken73chen/

2014年4月26日

台灣所有道路名稱

在購物網站,或者註冊、租房子等,有時候會需要使用者留下地址,如果地址可以用選的,不是用打字,就可以懶惰一點。

如果要可以用選的,顯然就要先把所有的城市、鄉鎮市、路名,都放到資料庫裡面,並不難,到郵局的下載專區,有 5 位數郵遞區號的文字檔,就拿來用吧!


$url = "http://download.post.gov.tw/post/download/Zip32_UTF8_10303.TXT";

$db = db_conect(CONFIG::db('house'));

$handle = @fopen($url, "r");
if ($handle) {
    while (($buffer = fgets($handle, 4096)) !== false) {
        preg_match('/([0-9]{3})[0-9]{2}(\S{3})(\S+(鄉|鎮|市|區|台|島))\s*(\S+)/u',$buffer,$m);
        unset($m[0],$m[4]);
        echo $buffer;
        var_dump($m);
        $db->insert("INSERT IGNORE INTO roadList SET areaCode=?,region=?,section=?,street=?,display='yes'",'ssss',$m);
    }
    if (!feof($handle)) {
        echo "Error: unexpected fgets() fail\n";
    }
    fclose($handle);
}


以上的程式不能跑,不過會寫 PHP 的很容易改成自己要的東西。