如果要可以用選的,顯然就要先把所有的城市、鄉鎮市、路名,都放到資料庫裡面,並不難,到郵局的下載專區,有 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 的很容易改成自己要的東西。