最近看了一篇博文是说微信公众平台搭建,于是心血来潮自己也尝试了一下。
1.不用多讲了,申请微信公众号,对于个人来说,只能申请订阅号。
可以看这个链接的文章,http://jingyan.baidu.com/article/414eccf6011ff06b431f0aec.html
2.采用的是Sina App Engine来脱管服务,就要申请sae开发者权限。
再看这个链接http://jingyan.baidu.com/article/4f7d57129a60531a20192796.html
3.在sae上新建一个应用
我选择的PHP,PHP几乎免费。Java应用的话,有点小贵了。
虽然没有学过PHP,摸着石头过河吧。
将php代码上传后,就有一个可调试的url了,PHP代码后面上。
4.再在微信公众平台中的开发者中心(这个要经过一段时间的审核),填入一下内容即可
5.然后就是对接数据了,为了测试,我对接的是图灵机器人的数据、12306和百度地图API
12306是为了查余票和车次,百度地图API是为了查天气预报、图灵机器人见链接:http://www.tuling123.com/openapi/
php代码如下,本人不是搞PHP的,因此只能在网上拷贝了,如有复制,纯属巧合。
php define("TOKEN", "weixin"); Session_start(); Session_Register("kw"); $wechatObj = new wechatCallbackapiTest(); require_once("train.php"); $tqTpl = ""; if (!isset($_GET['echostr'])) { $wechatObj->responseMsg(); }else{ $wechatObj->valid(); } class wechatCallbackapiTest { //验证签名 public function valid() { $echoStr = $_GET["echostr"]; $signature = $_GET["signature"]; $timestamp = $_GET["timestamp"]; $nonce = $_GET["nonce"]; $token = TOKEN; $tmpArr = array($token, $timestamp, $nonce); sort($tmpArr); $tmpStr = implode($tmpArr); $tmpStr = sha1($tmpStr); if($tmpStr == $signature){ echo $echoStr; exit; } } //响应消息 public function responseMsg() { $postStr = $GLOBALS["HTTP_RAW_POST_DATA"]; if (!empty($postStr)){ $this->logger("R ".$postStr); $postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA); $RX_TYPE = trim($postObj->MsgType); //消息类型分离 switch ($RX_TYPE) { case "event": $result = $this->receiveEvent($postObj); break; case "text": $result = $this->receiveTulingText($postObj); break; case "image": $result = $this->receiveImage($postObj); break; case "location": $result = $this->receiveLocation($postObj); break; case "voice": $result = $this->receiveVoice($postObj); break; case "video": $result = $this->receiveVideo($postObj); break; case "link": $result = $this->receiveLink($postObj); break; default: $result = "unknown msg type: ".$RX_TYPE; break; } $this->logger("T ".$result); echo $result; }else { echo ""; exit; } } //接收事件消息 private function receiveEvent($object) { $content = ""; switch ($object->Event) { case "subscribe": $content = "欢迎关注TomSnail "; $content .= (!empty($object->EventKey))?("\n来自二维码场景 ".str_replace("qrscene_","",$object->EventKey)):""; break; case "unsubscribe": $content = "取消关注"; break; case "SCAN": $content = "扫描场景 ".$object->EventKey; break; case "CLICK": switch ($object->EventKey) { case "COMPANY": $content = array(); $content[] = array("Title"=>"多图文1标题", "Description"=>"", "PicUrl"=>"http://discuz.comli.com/weixin/weather/icon/cartoon.jpg", "Url" =>"http://m.cnblogs.com/?u=txw1958"); break; default: $content = "点击菜单:".$object->EventKey; break; } break; case "LOCATION": $content = "上传位置:纬度 ".$object->Latitude.";经度 ".$object->Longitude; break; case "VIEW": $content = "跳转链接 ".$object->EventKey; break; case "MASSSENDJOBFINISH": $content = "消息ID:".$object->MsgID.",结果:".$object->Status.",粉丝数:".$object->TotalCount.",过滤:".$object->FilterCount.",发送成功:".$object->SentCount.",发送失败:".$object->ErrorCount; break; default: $content = "receive a new event: ".$object->Event; break; } if(is_array($content)){ if (isset($content[0])){ $result = $this->transmitNews($object, $content); }else if (isset($content['MusicUrl'])){ $result = $this->transmitMusic($object, $content); } }else{ $result = $this->transmitText($object, $content); } return $result; } private function receiveTulingText($object){ try{ $keyword = trim($object->Content); $userid = trim($object->FromUserName); $apiKey = "*******************************"; $apiURL = "http://www.tuling123.com/openapi/api?key=".$apiKey."&info=".$keyword."&userid=".userid; if((substr_count($keyword,'天气')!=0)||$_SESSION["kw"]=="天气"){ //百度地图API if($keyword=="天气"){ $_SESSION["kw"]="天气"; $content = "请输入城市".$_SESSION["kw"]; }else{ $geshu = substr_count($keyword,'天气'); if($geshu==0){ $city = $keyword; }else{ $t = explode("天气",$keyword); for($i=0;$i<=$geshu;$i++) { if($t[$i]!='') { $city = $t[$i]; break; } } } $mykey ="*********************"; $url = "http://api.map.baidu.com/telematics/v3/weather?location=".$city."&output=json&ak=".$mykey; $output = file_get_contents($url); $contentStr = json_decode($output, true); if($contentStr['status']=='success') { $T[0]['Title']=$contentStr['date']." ".$contentStr['results'][0]['currentCity']."天气"; $T[0]['PicUrl']="http://zhengwairen-try2.stor.sinaapp.com/xytq.jpg"; $T[0]['Url']="http://zhengwairen-try2.stor.sinaapp.com/xytq.jpg"; if(is_array($contentStr['results'][0]['index'])) { $T[2]['Title']="【pm2.5】".$contentStr['results'][0]['pm25']."\n"."【".$contentStr['results'][0]['index'][0]['title']."】"."(".$contentStr['results'][0]['index'][0]['zs'].") ".$contentStr['results'][0]['index'][0]['des']; //下一行是洗车指数,感觉不对主题还是不要的好。。 //$T[2]['Title']=$T[2]['Title']."\n"."【".$contentStr['results'][0]['index'][1]['title']."】(".$contentStr['results'][0]['index'][1]['zs'].")".$contentStr['results'][0]['index'][1]['des']; $T[2]['Title']=$T[2]['Title']."\n"."【".$contentStr['results'][0]['index'][2]['title']."】(".$contentStr['results'][0]['index'][2]['zs'].")".$contentStr['results'][0]['index'][2]['des']; } else $guowai=1; for($i=1,$aaa=0;$i<=5;$i++) { if($i==2 && $guowai!=1) continue; if($guowai==1 && $i==5) continue; $T[$i]['Title']=$contentStr['results'][0]['weather_data'][$aaa]['date']."".$contentStr['results'][0]['weather_data'][$aaa]['temperature']."".$contentStr['results'][0]['weather_data'][$aaa]['weather']." ".$contentStr['results'][0]['weather_data'][$aaa]['wind']; $T[$i]['PicUrl']=$contentStr['results'][0]['weather_data'][$aaa]['dayPictureUrl']; $T[$i]['Url']=$contentStr['results'][0]['weather_data'][$aaa]['dayPictureUrl']; $aaa++; } $content = $T; } } }else if(substr_count($keyword,'火车')!=0 && $keyword!='火车'){//12306 $geshu = substr_count($keyword,'火车:'); $k = str_replace('火车 ', "", $keyword); $t = explode(" ",$k); $startstaion = $t[0]; $endstation = $t[1]; $date =$t[2]; if($date==null){ $date = date("Y-m-d",time()); } if(substr_count($date,'-')==0){ $date = date("Y-m",time())."-".$date; } $time =$t[3]; if($time==null){ $time = "00:00"; } if(substr_count($time,':')==0){ $time = $time.":00"; } $data = gettrain($startstaion,$endstation,$date,$time); $str=""; $T[0]['Title']=$startstaion."到".$endstation." ".$date." ".$time."以后10列火车信息"; $T[0]['PicUrl']="http://zhengwairen-try2.stor.sinaapp.com/xytq.jpg"; $T[0]['Url']="http://zhengwairen-try2.stor.sinaapp.com/xytq.jpg"; $count = 1; foreach($data as $key =>$value){ $str=$count." "; $str.="火车列次:{$data[$key]['station_train_code']}\n"; $str.="始发站:{$data[$key]['start_station_name']},终点站:{$data[$key]['end_station_name']}\n"; $str.="出发时间:{$data[$key]['start_time']},到站时间:{$data[$key]['arrive_time']},历时:{$data[$key]['lishi']}\n"; $str.="一等座:{$data[$key]['zy_num']}\n二等座:{$data[$key]['ze_num']}\n硬座:{$data[$key]['yz_num']}\n硬卧:{$data[$key]['yw_num']}\n"; $str.="软卧:{$data[$key]['rw_num']}\n软座:{$data[$key]['rz_num']}\n特等座:{$data[$key]['tz_num']}\n无座:{$data[$key]['wz_num']}"; $count = $count+1; $T[$count]['Title'] = $str; // $T[$count]['Url']="http://kyfw.12306.cn/otn/leftTicket/queryTicketPrice?train_no=".$data[$key]["train_no"]."&from_station_no=".$data[$key]["from_station_no"]."&to_station_no=".$data[$key]["to_station_no"]."&seat_types=".$data[$key]["seat_types"]."&train_date=$date"; $T[$count]['Url'] = "https://kyfw.12306.cn/otn/login/init"; if($count==10){ break;} } $content = $T; }else{//图灵机器人 $file_contents = file_get_contents($apiURL); $file_contents = json_decode($file_contents,true); $code = $file_contents["code"]; if($code==100000){ $content = $file_contents["text"]; }else if($code==200000){ $T[0]['Title']=$file_contents["text"]; //$T[0]['PicUrl']="http://zhengwairen-try2.stor.sinaapp.com/xytq.jpg"; $T[0]['Url']=$file_contents["url"]; $content = $T; }else if($code==302000){ $T[0]['Title']=$file_contents["text"]; $T[0]['PicUrl']="http://zhengwairen-try2.stor.sinaapp.com/xytq.jpg"; $T[0]['Url']="http://zhengwairen-try2.stor.sinaapp.com/xytq.jpg"; $data = $file_contents["list"]; $count = 1; foreach($data as $key =>$value){ $T[$count]['Title']=$data[$key]["article"]; $T[$count]['PicUrl']=$data[$key]["icon"]; $T[$count]['Url']=$data[$key]["detailurl"]; $count++; } $content = $T; }else if($code==305000){ $T[0]['Title']=$file_contents["text"]; $T[0]['PicUrl']="http://zhengwairen-try2.stor.sinaapp.com/xytq.jpg"; $T[0]['Url']="http://zhengwairen-try2.stor.sinaapp.com/xytq.jpg"; $data = $file_contents["list"]; $count = 1; foreach($data as $key =>$value){ $T[$count]['Title']="车次".$data[$key]["trainnum"]."\n起始站:".$data[$key]["start"]."\n到达站:".$data[$key]["terminal"]."\n开车时间:".$data[$key]["starttime"]."\n到达时间:".$data[$key]["endtime"]; $T[$count]['PicUrl']=$data[$key]["icon"]; $T[$count]['Url']=$data[$key]["detailurl"]; $count++; if($count==10){ break; } } $content = $T; }else if($code==306000){ $T[0]['Title']=$file_contents["text"]; $T[0]['PicUrl']="http://zhengwairen-try2.stor.sinaapp.com/xytq.jpg"; $T[0]['Url']="http://zhengwairen-try2.stor.sinaapp.com/xytq.jpg"; $data = $file_contents["list"]; $count = 1; foreach($data as $key =>$value){ $T[$count]['Title']="航班号".$data[$key]["flight"]."航班路线".$data[$key]["route"]."\n起飞时间:".$data[$key]["starttime"]."\n到达时间:".$data[$key]["endtime"]."\n状态:".$data[$key]["state"]; $T[$count]['PicUrl']=$data[$key]["icon"]; $T[$count]['Url']=$data[$key]["detailurl"]; $count++; } $content = $T; }else if($code==308000){ $T[0]['Title']=$file_contents["text"]; $T[0]['PicUrl']="http://zhengwairen-try2.stor.sinaapp.com/xytq.jpg"; $T[0]['Url']="http://zhengwairen-try2.stor.sinaapp.com/xytq.jpg"; $data = $file_contents["list"]; $count = 1; foreach($data as $key =>$value){ $T[$count]['Title']="名称".$data[$key]["name"]."详情".$data[$key]["info"]; $T[$count]['PicUrl']=$data[$key]["icon"]; $T[$count]['Url']=$data[$key]["detailurl"]; $count++; } $content = $T; }else{ $content = $file_contents["text"]; } } if(is_array($content)){ if (isset($content[0]['PicUrl'])){ $result = $this->transmitNews($object, $content); }else if (isset($content['MusicUrl'])){ $result = $this->transmitMusic($object, $content); } }else{ $result = $this->transmitText($object, $content); } }catch(Exception $e){ $content=$e->getMessage(); $result = $this->transmitText($object, $content); } return $result; } //接收图片消息 private function receiveImage($object) { $content = array("MediaId"=>$object->MediaId); $result = $this->transmitImage($object, $content); return $result; } //接收位置消息 private function receiveLocation($object) { $content = "你发送的是位置,纬度为:".$object->Location_X.";经度为:".$object->Location_Y.";缩放级别为:".$object->Scale.";位置为:".$object->Label; $result = $this->transmitText($object, $content); return $result; } //接收语音消息 private function receiveVoice($object) { if (isset($object->Recognition) && !empty($object->Recognition)){ $content = "你刚才说的是:".$object->Recognition; $result = $this->transmitText($object, $content); }else{ $content = array("MediaId"=>$object->MediaId); $result = $this->transmitVoice($object, $content); } return $result; } //接收视频消息 private function receiveVideo($object) { $content = array("MediaId"=>$object->MediaId, "ThumbMediaId"=>$object->ThumbMediaId, "Title"=>"", "Description"=>""); $result = $this->transmitVideo($object, $content); return $result; } //接收链接消息 private function receiveLink($object) { $content = "你发送的是链接,标题为:".$object->Title.";内容为:".$object->Description.";链接地址为:".$object->Url; $result = $this->transmitText($object, $content); return $result; } //回复文本消息 private function transmitText($object, $content) { $xmlTpl = " %s 5 "; $result = sprintf($xmlTpl, $object->FromUserName, $object->ToUserName, time(), $content); return $result; } //回复图片消息 private function transmitImage($object, $imageArray) { $itemTpl = " %s "; $item_str = sprintf($itemTpl, $imageArray['MediaId']); $xmlTpl = " $item_str "; $result = sprintf($xmlTpl, $object->FromUserName, $object->ToUserName, time()); return $result; } //回复语音消息 private function transmitVoice($object, $voiceArray) { $itemTpl = " %s "; $item_str = sprintf($itemTpl, $voiceArray['MediaId']); $xmlTpl = " $item_str "; $result = sprintf($xmlTpl, $object->FromUserName, $object->ToUserName, time()); return $result; } //回复视频消息 private function transmitVideo($object, $videoArray) { $itemTpl = ""; $item_str = sprintf($itemTpl, $videoArray['MediaId'], $videoArray['ThumbMediaId'], $videoArray['Title'], $videoArray['Description']); $xmlTpl = " %s $item_str "; $result = sprintf($xmlTpl, $object->FromUserName, $object->ToUserName, time()); return $result; } //回复图文消息 private function transmitNews($object, $newsArray) { if(!is_array($newsArray)){ return; } $itemTpl = " %s - "; $item_str = ""; foreach ($newsArray as $item){ $item_str .= sprintf($itemTpl, $item['Title'], $item['Description'], $item['PicUrl'], $item['Url']); } $xmlTpl = "
$item_str "; $result = sprintf($xmlTpl, $object->FromUserName, $object->ToUserName, time(), count($newsArray)); return $result; } //回复音乐消息 private function transmitMusic($object, $musicArray) { $itemTpl = " %s %s "; $item_str = sprintf($itemTpl, $musicArray['Title'], $musicArray['Description'], $musicArray['MusicUrl'], $musicArray['HQMusicUrl']); $xmlTpl = " $item_str "; $result = sprintf($xmlTpl, $object->FromUserName, $object->ToUserName, time()); return $result; } //回复多客服消息 private function transmitService($object) { $xmlTpl = " %s "; $result = sprintf($xmlTpl, $object->FromUserName, $object->ToUserName, time()); return $result; } //日志记录 private function logger($log_content) { if(isset($_SERVER['HTTP_APPNAME'])){ //SAE sae_set_display_errors(false); sae_debug($log_content); sae_set_display_errors(true); }else if($_SERVER['REMOTE_ADDR'] != "127.0.0.1"){ //LOCAL $max_size = 10000; $log_filename = "log.xml"; if(file_exists($log_filename) and (abs(filesize($log_filename)) > $max_size)){unlink($log_filename);} file_put_contents($log_filename, date('H:i:s')." ".$log_content."\r\n", FILE_APPEND); } } } ?> %s
php return array( "北京北" => "VAP", "北京东" => "BOP", "北京" => "BJP", "北京南" => "VNP", "北京西" => "BXP", "重庆北" => "CUW", "重庆" => "CQW", "重庆南" => "CRW", "长春" => "CCT", "长春南" => "CET", "长春西" => "CRT", "成都东" => "ICW", "成都南" => "CNW", "成都" => "CDW", "长沙" => "CSQ", "长沙南" => "CWQ", "阿尔山" => "ART", "安康" => "AKY", "阿克苏" => "ASR", "阿里河" => "AHX", "阿拉山口" => "AKR", "安平" => "APT", "安庆" => "AQH", "安顺" => "ASW", "鞍山" => "AST", "安阳" => "AYF", "北安" => "BAB", "蚌埠" => "BBH", "白城" => "BCT", "北海" => "BHZ", "白河" => "BEL", "白涧" => "BAP", "宝鸡" => "BJY", "滨江" => "BJB", "博克图" => "BKX", "百色" => "BIZ", "白山市" => "HJL", "北台" => "BTT", "包头东" => "BDC", "包头" => "BTC", "北屯市" => "BXR", "本溪" => "BXT", "白云鄂博" => "BEC", "白银西" => "BXJ", "亳州" => "BZH", "赤壁" => "CBN", "常德" => "VGQ", "承德" => "CDP", "长甸" => "CDT", "赤峰" => "CFD", "茶陵" => "CDG", "苍南" => "CEH", "昌平" => "CPP", "崇仁" => "CRG", "昌图" => "CTT", "长汀镇" => "CDB", "崇信" => "CIJ", "曹县" => "CXK", "楚雄" => "COM", "陈相屯" => "CXT", "长治北" => "CBF", "长征" => "CZJ", "池州" => "IYH", "常州" => "CZH", "郴州" => "CZQ", "长治" => "CZF", "沧州" => "COP", "崇左" => "CZZ", "大安北" => "RNT", "大成" => "DCT", "丹东" => "DUT", "东方红" => "DFB", "东莞东" => "DMQ", "大虎山" => "DHD", "敦煌" => "DHJ", "敦化" => "DHL", "德惠" => "DHT", "东京城" => "DJB", "大涧" => "DFP", "都江堰" => "DDW", "大连北" => "DFT", "大理" => "DKM", "大连" => "DLT", "定南" => "DNG", "大庆" => "DZX", "东胜" => "DOC", "大石桥" => "DQT", "大同" => "DTV", "东营" => "DPK", "大杨树" => "DUX", "都匀" => "RYW", "邓州" => "DOF", "达州" => "RXW", "德州" => "DZP", "额济纳" => "EJC", "二连" => "RLC", "恩施" => "ESN", "昂昂溪" => "AAX", "阿城" => "ACB", "安达" => "ADX", "安定" => "ADP", "安广" => "AGT", "艾河" => "AHP", "安化" => "PKQ", "艾家村" => "AJJ", "鳌江" => "ARH", "安家" => "AJB", "阿金" => "AJD", "阿克陶" => "AER", "安口窑" => "AYY", "敖力布告" => "ALD", "安龙" => "AUZ", "阿龙山" => "ASX", "安陆" => "ALN", "阿木尔" => "JTX", "阿南庄" => "AZM", "安庆西" => "APH", "鞍山西" => "AXT", "安塘" => "ATV", "安亭北" => "ASH", "阿图什" => "ATR", "安图" => "ATL", "安溪" => "AXS", "博鳌" => "BWQ", "白壁关" => "BGV", "蚌埠南" => "BMH", "巴楚" => "BCR", "板城" => "BUP", "北戴河" => "BEP", "保定" => "BDP", "宝坻" => "BPP", "八达岭" => "ILP", "巴东" => "BNN", "柏果" => "BGM", "布海" => "BUT", "白河东" => "BIY", "贲红" => "BVC", "宝华山" => "BWH", "白河县" => "BEY", "白芨沟" => "BJJ", "碧鸡关" => "BJM", "北滘" => "IBQ", "碧江" => "BLQ", "白鸡坡" => "BBM", "笔架山" => "BSB", "八角台" => "BTD", "保康" => "BKD", "白奎堡" => "BKB", "白狼" => "BAT", "百浪" => "BRZ", "博乐" => "BOR", "宝拉格" => "BQC", "巴林" => "BLX", "宝林" => "BNB", "北流" => "BOZ", "勃利" => "BLB", "布列开" => "BLR", "宝龙山" => "BND", "八面城" => "BMD", "班猫箐" => "BNM", "八面通" => "BMB", "北马圈子" => "BRP", "北票南" => "RPD", "白旗" => "BQP", "宝泉岭" => "BQB", "白泉" => "BQL", "白沙" => "BSW", "巴山" => "BAY", "白水江" => "BSY", "白沙坡" => "BPM", "白石山" => "BAL", "白水镇" => "BUM", "坂田" => "BTQ", "泊头" => "BZP", "北屯" => "BYP", "本溪湖" => "BHT", "博兴" => "BXK", "八仙筒" => "VXD", "白音察干" => "BYC", "背荫河" => "BYB", "北营" => "BIV", "巴彦高勒" => "BAC", "白音他拉" => "BID", "鲅鱼圈" => "BYT", "白银市" => "BNJ", "白音胡硕" => "BCD", "巴中" => "IEW", "霸州" => "RMP", "北宅" => "BVP", "赤壁北" => "CIN", "查布嘎" => "CBC", "长城" => "CEJ", "长冲" => "CCM", "承德东" => "CCP", "赤峰西" => "CID", "嵯岗" => "CAX", "柴岗" => "CGT", "长葛" => "CEF", "柴沟堡" => "CGV", "城固" => "CGY", "陈官营" => "CAJ", "成高子" => "CZB", "草海" => "WBW", "柴河" => "CHB", "册亨" => "CHZ", "草河口" => "CKT", "崔黄口" => "CHP", "巢湖" => "CIH", "蔡家沟" => "CJT", "成吉思汗" => "CJX", "岔江" => "CAM", "蔡家坡" => "CJY", "沧口" => "CKK", "昌乐" => "CLK", "超梁沟" => "CYP", "慈利" => "CUQ", "昌黎" => "CLP", "长岭子" => "CLT", "晨明" => "CMB", "长农" => "CNJ", "昌平北" => "VBP", "长坡岭" => "CPM", "辰清" => "CQB", "楚山" => "CSB", "长寿" => "EFW", "磁山" => "CSP", "苍石" => "CST", "草市" => "CSL", "察素齐" => "CSC", "长山屯" => "CVT", "长汀" => "CES", "昌图西" => "CPT", "春湾" => "CQQ", "磁县" => "CIP", "岑溪" => "CNZ", "辰溪" => "CXQ", "磁西" => "CRP", "长兴南" => "CFH", "磁窑" => "CYK", "朝阳" => "CYD", "春阳" => "CAL", "城阳" => "CEK", "创业村" => "CEX", "朝阳川" => "CYL", "朝阳地" => "CDD", "长垣" => "CYF", "朝阳镇" => "CZL", "滁州北" => "CUH", "常州北" => "ESH", "滁州" => "CXH", "潮州" => "CKQ", "常庄" => "CVK", "曹子里" => "CFP", "车转湾" => "CWM", "郴州西" => "ICQ", "沧州西" => "CBP", "德安" => "DAG", "大安" => "RAT", "东安" => "DAZ", "大坝" => "DBJ", "大板" => "DBC", "大巴" => "DBD", "到保" => "RBT", "定边" => "DYJ", "东边井" => "DBB", "德伯斯" => "RDT", "打柴沟" => "DGJ", "德昌" => "DVW", "滴道" => "DDB", "大德" => "DEM", "大磴沟" => "DKJ", "刀尔登" => "DRD", "得耳布尔" => "DRX", "东方" => "UFQ", "丹凤" => "DGY", "东丰" => "DIL", "都格" => "DMM", "大官屯" => "DTT", "大关" => "RGW", "东光" => "DGP", "东莞" => "DAQ", "东海" => "DHB", "大灰厂" => "DHP", "大红旗" => "DQD", "东海县" => "DQH", "德惠西" => "DXT", "达家沟" => "DJT", "东津" => "DKB", "杜家" => "DJL", "大旧庄" => "DJM", "大口屯" => "DKP", "东来" => "RVD", "德令哈" => "DHO", "大陆号" => "DLC", "带岭" => "DLB", "大林" => "DLD", "达拉特旗" => "DIC", "独立屯" => "DTX", "豆罗" => "DLV", "达拉特西" => "DNC", "东明村" => "DMD", "洞庙河" => "DEP", "东明县" => "DNF", "大拟" => "DNZ", "大平房" => "DPD", "大盘石" => "RPP", "大埔" => "DPI", "大堡" => "DVT", "大其拉哈" => "DQX", "道清" => "DML", "对青山" => "DQB", "德清西" => "MOH", "东升" => "DRQ", "独山" => "RWW", "砀山" => "DKH", "登沙河" => "DWT", "读书铺" => "DPM", "大石头" => "DSL", "大石寨" => "RZT", "东台" => "DBH", "定陶" => "DQK", "灯塔" => "DGT", "大田边" => "DBM", "东通化" => "DTL", "丹徒" => "RUH", "大屯" => "DNT", "东湾" => "DRJ", "大武口" => "DFJ", "低窝铺" => "DWJ", "大王滩" => "DZZ", "大湾子" => "DFM", "大兴沟" => "DXL", "大兴" => "DXX", "定西" => "DSJ", "甸心" => "DXM", "东乡" => "DXG", "代县" => "DKV", "定襄" => "DXV", "东戌" => "RXP", "东辛庄" => "DXD", "丹阳" => "DYH", "大雁" => "DYX", "德阳" => "DYW", "当阳" => "DYN", "丹阳北" => "EXH", "大英东" => "IAW", "东淤地" => "DBV", "大营" => "DYV", "定远" => "EWH", "岱岳" => "RYV", "大元" => "DYZ", "大营镇" => "DJP", "大营子" => "DZD", "大战场" => "DTJ", "德州东" => "DIP", "低庄" => "DVQ", "东镇" => "DNV", "道州" => "DFZ", "东至" => "DCH", "东庄" => "DZV", "兑镇" => "DWV", "豆庄" => "ROP", "定州" => "DXP", "大竹园" => "DZY", "大杖子" => "DAP", "豆张庄" => "RZP", "峨边" => "EBW", "二道沟门" => "RDP", "二道湾" => "RDX", "二龙" => "RLD", "二龙山屯" => "ELA", "峨眉" => "EMW", "二密河" => "RML", "二营" => "RYJ", "鄂州" => "ECN", "安阳东" => "ADF", "保定东" => "BMP", "长阳" => "CYN", "东二道河" => "DRB", "大苴" => "DIM", "大青沟" => "DSD", "定州东" => "DOP", "福州" => "FZS", "福州南" => "FYS", "贵阳" => "GIW", "广州北" => "GBQ", "广州东" => "GGQ", "广州" => "GZQ", "广州南" => "IZQ", "哈尔滨" => "HBB", "哈尔滨东" => "VBB", "哈尔滨西" => "VAB", "合肥" => "HFH", "合肥西" => "HTH", "呼和浩特东" => "NDC", "呼和浩特" => "HHC", "海口东" => "HMQ", "海口" => "VUQ", "杭州" => "HZH", "杭州南" => "XHH", "济南" => "JNK", "济南东" => "JAK", "济南西" => "JGK", "防城港" => "FEZ", "福鼎" => "FES", "风陵渡" => "FLV", "涪陵" => "FLW", "富拉尔基" => "FRX", "抚顺北" => "FET", "佛山" => "FSQ", "阜新" => "FXD", "阜阳" => "FYH", "格尔木" => "GRO", "广汉" => "GHW", "古交" => "GJV", "桂林北" => "GBZ", "古莲" => "GRX", "桂林" => "GLZ", "固始" => "GXN", "广水" => "GSN", "干塘" => "GNJ", "广元" => "GYW", "赣州" => "GZG", "公主岭" => "GLT", "公主岭南" => "GBT", "淮安" => "AUH", "鹤北" => "HMB", "淮北" => "HRH", "淮滨" => "HVN", "河边" => "HBV", "潢川" => "KCN", "韩城" => "HCY", "邯郸" => "HDP", "横道河子" => "HDB", "鹤岗" => "HGB", "皇姑屯" => "HTT", "红果" => "HEM", "黑河" => "HJB", "怀化" => "HHQ", "汉口" => "HKN", "葫芦岛" => "HLD", "海拉尔" => "HRX", "霍林郭勒" => "HWD", "海伦" => "HLB", "侯马" => "HMV", "哈密" => "HMR", "淮南" => "HAH", "桦南" => "HNB", "海宁西" => "EUH", "鹤庆" => "HQM", "怀柔北" => "HBP", "怀柔" => "HRP", "黄石东" => "OSN", "华山" => "HSY", "黄石" => "HSN", "黄山" => "HKH", "衡水" => "HSP", "衡阳" => "HYQ", "菏泽" => "HIK", "贺州" => "HXZ", "汉中" => "HOY", "惠州" => "HCQ", "吉安" => "VAG", "集安" => "JAL", "江边村" => "JBG", "晋城" => "JCF", "金城江" => "JJZ", "景德镇" => "JCG", "嘉峰" => "JFF", "加格达奇" => "JGX", "井冈山" => "JGG", "蛟河" => "JHL", "金华南" => "RNH", "金华西" => "JBH", "九江" => "JJG", "吉林" => "JLL", "荆门" => "JMN", "佳木斯" => "JMB", "济宁" => "JIK", "集宁南" => "JAC", "酒泉" => "JQJ", "江山" => "JUH", "吉首" => "JIQ", "九台" => "JTL", "镜铁山" => "JVJ", "鸡西" => "JXB", "蓟县" => "JKP", "绩溪县" => "JRH", "嘉峪关" => "JGJ", "江油" => "JFW", "锦州" => "JZD", "金州" => "JZT", "福安" => "FAS", "防城" => "FAZ", "丰城" => "FCG", "丰城南" => "FNG", "肥东" => "FIH", "发耳" => "FEM", "富海" => "FHX", "福海" => "FHR", "凤凰城" => "FHT", "奉化" => "FHH", "富锦" => "FIB", "范家屯" => "FTT", "福利屯" => "FTB", "丰乐镇" => "FZB", "阜南" => "FNH", "阜宁" => "AKH", "抚宁" => "FNP", "福清" => "FQS", "福泉" => "VMW", "丰水村" => "FSJ", "丰顺" => "FUQ", "繁峙" => "FSV", "抚顺" => "FST", "福山口" => "FKP", "扶绥" => "FSZ", "冯屯" => "FTX", "浮图峪" => "FYP", "富县东" => "FDY", "凤县" => "FXY", "富县" => "FEY", "费县" => "FXK", "凤阳" => "FUH", "汾阳" => "FAV", "扶余北" => "FBT", "分宜" => "FYG", "富源" => "FYM", "扶余" => "FYT", "富裕" => "FYX", "抚州北" => "FBG", "凤州" => "FZY", "丰镇" => "FZC", "范镇" => "VZK", "固安" => "GFP", "广安" => "VJW", "高碑店" => "GBP", "沟帮子" => "GBD", "甘草店" => "GDJ", "谷城" => "GCN", "藁城" => "GEP", "高村" => "GCV", "古城镇" => "GZB", "广德" => "GRH", "贵定" => "GTW", "贵定南" => "IDW", "古东" => "GDV", "贵港" => "GGZ", "官高" => "GVP", "葛根庙" => "GGT", "干沟" => "GGL", "甘谷" => "GGJ", "高各庄" => "GGP", "甘河" => "GAX", "根河" => "GEX", "郭家店" => "GDT", "孤家子" => "GKT", "高老" => "GOB", "古浪" => "GLJ", "皋兰" => "GEJ", "高楼房" => "GFM", "归流河" => "GHT", "关林" => "GLF", "甘洛" => "VOW", "郭磊庄" => "GLP", "高密" => "GMK", "公庙子" => "GMC", "工农湖" => "GRT", "广宁寺" => "GNT", "广南卫" => "GNM", "高平" => "GPF", "甘泉北" => "GEY", "共青城" => "GAG", "甘旗卡" => "GQD", "甘泉" => "GQY", "高桥镇" => "GZD", "赶水" => "GSW", "灌水" => "GST", "孤山口" => "GSP", "果松" => "GSL", "高山子" => "GSD", "嘎什甸子" => "GXD", "高台" => "GTJ", "高滩" => "GAY", "古田" => "GTS", "官厅" => "GTP", "广通" => "GOM", "官厅西" => "KEP", "贵溪" => "GXG", "涡阳" => "GYH", "巩义" => "GXF", "高邑" => "GIP", "巩义南" => "GYF", "固原" => "GUJ", "菇园" => "GYL", "公营子" => "GYD", "光泽" => "GZS", "古镇" => "GNQ", "瓜州" => "GZJ", "高州" => "GSQ", "固镇" => "GEH", "盖州" => "GXT", "官字井" => "GOT", "革镇堡" => "GZT", "冠豸山" => "GSS", "盖州西" => "GAT", "红安" => "HWN", "淮安南" => "AMH", "红安西" => "VXN", "海安县" => "HIH", "黄柏" => "HBL", "海北" => "HEB", "鹤壁" => "HAF", "华城" => "VCQ", "合川" => "WKW", "河唇" => "HCZ", "汉川" => "HCN", "海城" => "HCT", "黑冲滩" => "HCJ", "黄村" => "HCP", "海城西" => "HXT", "化德" => "HGC", "洪洞" => "HDV", "横峰" => "HFG", "韩府湾" => "HXJ", "汉沽" => "HGP", "黄瓜园" => "HYM", "红光镇" => "IGW", "浑河" => "HHT", "红花沟" => "VHD", "黄花筒" => "HUD", "贺家店" => "HJJ", "和静" => "HJR", "红江" => "HFM", "黑井" => "HIM", "获嘉" => "HJF", "河津" => "HJV", "涵江" => "HJS", "华家" => "HJT", "河间西" => "HXP", "花家庄" => "HJM", "河口南" => "HKJ", "黄口" => "KOH", "湖口" => "HKG", "呼兰" => "HUB", "葫芦岛北" => "HPD", "浩良河" => "HHB", "哈拉海" => "HIT", "鹤立" => "HOB", "桦林" => "HIB", "黄陵" => "ULY", "海林" => "HRB", "虎林" => "VLB", "寒岭" => "HAT", "和龙" => "HLL", "海龙" => "HIL", "哈拉苏" => "HAX", "呼鲁斯太" => "VTJ", "火连寨" => "HLT", "黄梅" => "VEH", "蛤蟆塘" => "HMT", "韩麻营" => "HYP", "黄泥河" => "HHL", "海宁" => "HNH", "惠农" => "HMJ", "和平" => "VAQ", "花棚子" => "HZM", "花桥" => "VQH", "宏庆" => "HEY", "怀仁" => "HRV", "华容" => "HRN", "华山北" => "HDY", "黄松甸" => "HDL", "和什托洛盖" => "VSR", "红山" => "VSB", "汉寿" => "VSQ", "衡山" => "HSQ", "黑水" => "HOT", "惠山" => "VCH", "虎什哈" => "HHP", "红寺堡" => "HSJ", "虎石台" => "HUT", "海石湾" => "HSO", "衡山西" => "HEQ", "红砂岘" => "VSJ", "黑台" => "HQB", "桓台" => "VTK", "和田" => "VTR", "会同" => "VTQ", "海坨子" => "HZT", "黑旺" => "HWK", "海湾" => "RWH", "红星" => "VXB", "徽县" => "HYY", "红兴隆" => "VHB", "换新天" => "VTB", "红岘台" => "HTJ", "红彦" => "VIX", "合阳" => "HAY", "海阳" => "HYK", "衡阳东" => "HVQ", "华蓥" => "HUW", "汉阴" => "HQY", "黄羊滩" => "HGJ", "汉源" => "WHW", "湟源" => "HNO", "河源" => "VIQ", "花园" => "HUN", "黄羊镇" => "HYJ", "化州" => "HZZ", "黄州" => "VON", "霍州" => "HZV", "惠州西" => "VXQ", "巨宝" => "JRT", "靖边" => "JIY", "金宝屯" => "JBD", "晋城北" => "JEF", "金昌" => "JCJ", "鄄城" => "JCK", "交城" => "JNV", "建昌" => "JFD", "峻德" => "JDB", "井店" => "JFP", "鸡东" => "JOB", "江都" => "UDH", "鸡冠山" => "JST", "金沟屯" => "VGP", "静海" => "JHP", "金河" => "JHX", "锦河" => "JHB", "锦和" => "JHQ", "精河" => "JHR", "精河南" => "JIR", "江华" => "JHZ", "建湖" => "AJH", "纪家沟" => "VJD", "晋江" => "JJS", "江津" => "JJW", "姜家" => "JJB", "金坑" => "JKT", "芨岭" => "JLJ", "金马村" => "JMM", "角美" => "JES", "江门" => "JWQ", "莒南" => "JOK", "井南" => "JNP", "建瓯" => "JVS", "经棚" => "JPC", "江桥" => "JQX", "九三" => "SSX", "金山北" => "EGH", "京山" => "JCN", "建始" => "JRN", "嘉善" => "JSH", "稷山" => "JVV", "吉舒" => "JSL", "建设" => "JET", "甲山" => "JOP", "建三江" => "JIB", "嘉善南" => "EAH", "金山屯" => "JTB", "江所田" => "JOM", "景泰" => "JTJ", "吉文" => "JWX", "进贤" => "JUG", "莒县" => "JKK", "嘉祥" => "JUK", "介休" => "JXV", "井陉" => "JJP", "嘉兴" => "JXH", "嘉兴南" => "EPH", "夹心子" => "JXT", "简阳" => "JYW", "揭阳" => "JRQ", "建阳" => "JYS", "姜堰" => "UEH", "巨野" => "JYK", "江永" => "JYZ", "靖远" => "JYJ", "缙云" => "JYH", "江源" => "SZL", "济源" => "JYF", "靖远西" => "JXJ", "胶州北" => "JZK", "焦作东" => "WEF", "靖州" => "JEQ", "荆州" => "JBN", "金寨" => "JZH", "晋州" => "JXP", "胶州" => "JXK", "锦州南" => "JOD", "焦作" => "JOF", "旧庄窝" => "JVP", "金杖子" => "JYD", "富川" => "FDZ", "抚远" => "FYB", "高碑店东" => "GMP", "革居" => "GEM", "光明城" => "IMQ", "高邑西" => "GNP", "鹤壁东" => "HFF", "寒葱沟" => "HKB", "邯郸东" => "HPP", "合肥北城" => "COH", "洪河" => "HPB", "虎门" => "IUQ", "哈密南" => "HLR", "淮南东" => "HOH", "建水" => "JSM", "昆明" => "KMM", "昆明西" => "KXM", "拉萨" => "LSO", "兰州东" => "LVJ", "兰州" => "LZJ", "兰州西" => "LAJ", "南昌" => "NCG", "南京" => "NJH", "南京南" => "NKH", "南宁" => "NNZ", "库尔勒" => "KLR", "开封" => "KFF", "岢岚" => "KLV", "凯里" => "KLW", "喀什" => "KSR", "昆山南" => "KNH", "奎屯" => "KTR", "开原" => "KYT", "六安" => "UAH", "灵宝" => "LBF", "芦潮港" => "UCH", "隆昌" => "LCW", "陆川" => "LKZ", "利川" => "LCN", "临川" => "LCG", "潞城" => "UTP", "鹿道" => "LDL", "娄底" => "LDQ", "临汾" => "LFV", "良各庄" => "LGP", "临河" => "LHC", "漯河" => "LON", "绿化" => "LWJ", "隆化" => "UHP", "丽江" => "LHM", "临江" => "LQL", "龙井" => "LJL", "吕梁" => "LHV", "醴陵" => "LLG", "柳林南" => "LKV", "滦平" => "UPP", "六盘水" => "UMW", "灵丘" => "LVV", "旅顺" => "LST", "陇西" => "LXJ", "澧县" => "LEQ", "兰溪" => "LWH", "临西" => "UEP", "耒阳" => "LYQ", "洛阳" => "LYF", "龙岩" => "LYS", "洛阳东" => "LDF", "连云港东" => "UKH", "临沂" => "LVK", "洛阳龙门" => "LLF", "柳园" => "DHR", "凌源" => "LYD", "辽源" => "LYL", "立志" => "LZX", "柳州" => "LZZ", "辽中" => "LZD", "麻城" => "MCN", "免渡河" => "MDX", "牡丹江" => "MDB", "莫尔道嘎" => "MRX", "满归" => "MHX", "明光" => "MGH", "漠河" => "MVX", "梅江" => "MKQ", "茂名东" => "MDQ", "茂名" => "MMZ", "密山" => "MSB", "马三家" => "MJT", "麻尾" => "VAW", "绵阳" => "MYW", "梅州" => "MOQ", "满洲里" => "MLX", "宁波东" => "NVH", "南岔" => "NCB", "南充" => "NCW", "南丹" => "NDZ", "南大庙" => "NMP", "南芬" => "NFT", "讷河" => "NHX", "嫩江" => "NGX", "内江" => "NJW", "南平" => "NPS", "南通" => "NUH", "南阳" => "NFF", "碾子山" => "NZX", "开安" => "KAT", "库车" => "KCR", "康城" => "KCP", "库都尔" => "KDX", "宽甸" => "KDT", "克东" => "KOB", "开江" => "KAW", "康金井" => "KJB", "喀喇其" => "KQX", "开鲁" => "KLC", "克拉玛依" => "KHR", "口前" => "KQL", "奎山" => "KAB", "昆山" => "KSH", "克山" => "KSB", "开通" => "KTT", "康熙岭" => "KXZ", "克一河" => "KHX", "开原西" => "KXT", "康庄" => "KZP", "来宾" => "UBZ", "老边" => "LLT", "灵宝西" => "LPF", "龙川" => "LUQ", "乐昌" => "LCQ", "黎城" => "UCP", "聊城" => "UCK", "蓝村" => "LCK", "林东" => "LRC", "乐都" => "LDO", "梁底下" => "LDP", "六道河子" => "LVP", "鲁番" => "LVM", "廊坊" => "LJP", "落垡" => "LOP", "廊坊北" => "LFP", "禄丰" => "LFM", "老府" => "UFD", "兰岗" => "LNB", "龙骨甸" => "LGM", "芦沟" => "LOM", "龙沟" => "LGJ", "拉古" => "LGB", "临海" => "UFH", "林海" => "LXX", "拉哈" => "LHX", "凌海" => "JID", "柳河" => "LNL", "六合" => "KLH", "龙华" => "LHP", "滦河沿" => "UNP", "六合镇" => "LEX", "亮甲店" => "LRT", "刘家店" => "UDT", "刘家河" => "LVT", "连江" => "LKS", "李家" => "LJB", "罗江" => "LJW", "廉江" => "LJZ", "庐江" => "UJH", "两家" => "UJT", "龙江" => "LJX", "龙嘉" => "UJL", "莲江口" => "LHB", "蔺家楼" => "ULK", "李家坪" => "LIJ", "兰考" => "LKF", "林口" => "LKB", "路口铺" => "LKQ", "老莱" => "LAX", "拉林" => "LAB", "陆良" => "LRM", "龙里" => "LLW", "零陵" => "UWZ", "临澧" => "LWQ", "兰棱" => "LLB", "卢龙" => "UAP", "喇嘛甸" => "LMX", "里木店" => "LMB", "洛门" => "LMJ", "龙南" => "UNG", "梁平" => "UQW", "罗平" => "LPM", "落坡岭" => "LPP", "六盘山" => "UPJ", "乐平市" => "LPG", "临清" => "UQK", "龙泉寺" => "UQJ", "乐善村" => "LUM", "冷水江东" => "UDQ", "连山关" => "LGT", "流水沟" => "USP", "陵水" => "LIQ", "乐山" => "UTW", "罗山" => "LRN", "鲁山" => "LAF", "丽水" => "USH", "梁山" => "LMK", "灵石" => "LSV", "露水河" => "LUL", "庐山" => "LSG", "林盛堡" => "LBT", "柳树屯" => "LSD", "梨树镇" => "LSB", "龙山镇" => "LAS", "李石寨" => "LET", "黎塘" => "LTZ", "轮台" => "LAR", "芦台" => "LTP", "龙塘坝" => "LBM", "濑湍" => "LVZ", "骆驼巷" => "LTJ", "李旺" => "VLJ", "莱芜东" => "LWK", "狼尾山" => "LRJ", "灵武" => "LNJ", "莱芜西" => "UXK", "朗乡" => "LXB", "陇县" => "LXY", "临湘" => "LXQ", "莱西" => "LXK", "林西" => "LXC", "滦县" => "UXP", "略阳" => "LYY", "莱阳" => "LYK", "辽阳" => "LYT", "临沂北" => "UYK", "凌源东" => "LDD", "连云港" => "UIH", "老羊壕" => "LYC", "临颍" => "LNF", "老营" => "LXL", "龙游" => "LMH", "罗源" => "LVS", "林源" => "LYX", "涟源" => "LAQ", "涞源" => "LYP", "耒阳西" => "LPQ", "临泽" => "LEJ", "龙爪沟" => "LZT", "雷州" => "UAQ", "六枝" => "LIW", "鹿寨" => "LIZ", "来舟" => "LZS", "龙镇" => "LZA", "拉鲊" => "LEM", "明安" => "MAC", "马鞍山" => "MAH", "毛坝" => "MBY", "毛坝关" => "MGY", "麻城北" => "MBN", "渑池" => "MCF", "明城" => "MCL", "庙城" => "MAP", "渑池南" => "MNF", "茅草坪" => "KPM", "猛洞河" => "MUQ", "磨刀石" => "MOB", "弥渡" => "MDF", "帽儿山" => "MRB", "明港" => "MGN", "梅河口" => "MHL", "马皇" => "MHZ", "孟家岗" => "MGB", "美兰" => "MHQ", "汨罗东" => "MQQ", "马莲河" => "MHB", "茅岭" => "MLZ", "庙岭" => "MLL", "茂林" => "MLD", "穆棱" => "MLB", "马林" => "MID", "马龙" => "MGM", "汨罗" => "MLQ", "木里图" => "MUD", "密马龙" => "MMM", "玛纳斯湖" => "MNR", "冕宁" => "UGW", "沐滂" => "MPQ", "马桥河" => "MQB", "闽清" => "MQS", "民权" => "MQF", "明水河" => "MUT", "麻山" => "MAB", "眉山" => "MSW", "漫水湾" => "MKW", "茂舍祖" => "MOM", "米沙子" => "MST", "庙台子" => "MZB", "美溪" => "MEB", "勉县" => "MVY", "麻阳" => "MVQ", "牧羊村" => "MCM", "米易" => "MMW", "麦园" => "MYS", "墨玉" => "MUR", "密云" => "MUP", "庙庄" => "MZJ", "米脂" => "MEY", "明珠" => "MFQ", "宁安" => "NAB", "农安" => "NAT", "南博山" => "NBK", "南仇" => "NCK", "南城司" => "NSP", "宁村" => "NCZ", "宁德" => "NES", "南观村" => "NGP", "南宫东" => "NFP", "南关岭" => "NLT", "宁国" => "NNH", "宁海" => "NHH", "南河川" => "NHJ", "南华" => "NHS", "泥河子" => "NHD", "宁家" => "NVT", "牛家" => "NJB", "南靖" => "NJS", "能家" => "NJD", "南口" => "NKP", "南口前" => "NKT", "南朗" => "NNQ", "乃林" => "NLD", "尼勒克" => "NIR", "那罗" => "ULZ", "宁陵县" => "NLF", "奈曼" => "NMD", "宁明" => "NMZ", "南木" => "NMX", "南平南" => "NNS", "那铺" => "NPZ", "南桥" => "NQD", "那曲" => "NQO", "暖泉" => "NQJ", "南台" => "NTT", "南头" => "NOQ", "宁武" => "NWV", "南湾子" => "NWP", "南翔北" => "NEH", "宁乡" => "NXQ", "内乡" => "NXF", "牛心台" => "NXT", "南峪" => "NUP", "娘子关" => "NIP", "南召" => "NAF", "南杂木" => "NZT", "库伦" => "KLD", "漯河西" => "LBN", "明港东" => "MDN", "蒙自北" => "MBM", "上海" => "SHH", "上海南" => "SNH", "上海虹桥" => "AOH", "上海西" => "SXH", "天津北" => "TBP", "天津" => "TJP", "天津南" => "TIP", "天津西" => "TXP", "石家庄北" => "VVP", "石家庄" => "SJP", "沈阳" => "SYT", "沈阳北" => "SBT", "沈阳东" => "SDT", "太原北" => "TBV", "太原东" => "TDV", "太原" => "TYV", "平顶山" => "PEN", "盘锦" => "PVD", "平凉" => "PIJ", "平凉南" => "POJ", "平泉" => "PQP", "坪石" => "PSQ", "萍乡" => "PXG", "凭祥" => "PXZ", "郫县西" => "PCW", "攀枝花" => "PRW", "蕲春" => "QRN", "青城山" => "QSW", "青岛" => "QDK", "清河城" => "QYP", "黔江" => "QNW", "曲靖" => "QJM", "前进镇" => "QEB", "齐齐哈尔" => "QHX", "七台河" => "QTB", "沁县" => "QVV", "泉州东" => "QRS", "泉州" => "QYS", "衢州" => "QEH", "融安" => "RAZ", "汝箕沟" => "RQJ", "瑞金" => "RJG", "日照" => "RZK", "双城堡" => "SCB", "绥芬河" => "SFB", "韶关东" => "SGQ", "山海关" => "SHD", "绥化" => "SHB", "三间房" => "SFX", "苏家屯" => "SXT", "舒兰" => "SLL", "三明" => "SMS", "神木" => "OMY", "三门峡" => "SMF", "商南" => "ONY", "遂宁" => "NIW", "四平" => "SPT", "商丘" => "SQF", "上饶" => "SRG", "韶山" => "SSQ", "宿松" => "OAH", "汕头" => "OTQ", "邵武" => "SWS", "涉县" => "OEP", "三亚" => "SEQ", "邵阳" => "SYQ", "十堰" => "SNN", "双鸭山" => "SSB", "松原" => "VYT", "深圳" => "SZQ", "苏州" => "SZH", "随州" => "SZN", "宿州" => "OXH", "朔州" => "SUV", "深圳西" => "OSQ", "塘豹" => "TBQ", "塔尔气" => "TVX", "潼关" => "TGY", "塘沽" => "TGP", "塔河" => "TXX", "通化" => "THL", "泰来" => "TLX", "吐鲁番" => "TFR", "通辽" => "TLD", "铁岭" => "TLT", "陶赖昭" => "TPT", "图们" => "TML", "铜仁" => "RDQ", "唐山北" => "FUP", "田师府" => "TFT", "泰山" => "TAK", "天水" => "TSJ", "唐山" => "TSP", "通远堡" => "TYT", "太阳升" => "TQT", "泰州" => "UTH", "桐梓" => "TZW", "通州西" => "TAP", "平安" => "PAL", "蓬安" => "PAW", "平安驿" => "PNO", "磐安镇" => "PAJ", "平安镇" => "PZT", "蒲城东" => "PEY", "蒲城" => "PCY", "裴德" => "PDB", "偏店" => "PRP", "平顶山西" => "BFF", "坡底下" => "PXJ", "瓢儿屯" => "PRT", "平房" => "PFB", "平岗" => "PGL", "平关" => "PGM", "盘关" => "PAM", "平果" => "PGZ", "徘徊北" => "PHP", "平河口" => "PHM", "盘锦北" => "PBD", "潘家店" => "PDP", "皮口" => "PKT", "普兰店" => "PLT", "偏岭" => "PNT", "平山" => "PSB", "彭山" => "PSW", "皮山" => "PSR", "彭水" => "PHW", "磐石" => "PSL", "平社" => "PSV", "平台" => "PVT", "平田" => "PTM", "莆田" => "PTS", "葡萄菁" => "PTW", "普湾" => "PWT", "平旺" => "PWV", "平型关" => "PGV", "普雄" => "POW", "平洋" => "PYX", "彭阳" => "PYJ", "平遥" => "PYV", "平邑" => "PIK", "平原堡" => "PPJ", "平原" => "PYK", "平峪" => "PYP", "彭泽" => "PZG", "邳州" => "PJH", "平庄" => "PZD", "泡子" => "POD", "平庄南" => "PND", "乾安" => "QOT", "庆安" => "QAB", "迁安" => "QQP", "祁东北" => "QRQ", "七甸" => "QDM", "曲阜东" => "QAK", "庆丰" => "QFT", "奇峰塔" => "QVP", "曲阜" => "QFK", "勤丰营" => "QFM", "琼海" => "QYQ", "秦皇岛" => "QTP", "千河" => "QUY", "清河" => "QIP", "清河门" => "QHD", "清华园" => "QHP", "渠旧" => "QJZ", "綦江" => "QJW", "潜江" => "QJN", "全椒" => "INH", "秦家" => "QJB", "祁家堡" => "QBT", "清涧县" => "QNY", "秦家庄" => "QZV", "七里河" => "QLD", "渠黎" => "QLZ", "秦岭" => "QLY", "青龙山" => "QGH", "青龙寺" => "QSM", "祁门" => "QIH", "前磨头" => "QMP", "青山" => "QSB", "全胜" => "QVB", "确山" => "QSN", "清水" => "QUJ", "前山" => "QXQ", "戚墅堰" => "QYH", "青田" => "QVH", "桥头" => "QAT", "青铜峡" => "QTJ", "前卫" => "QWD", "前苇塘" => "QWP", "渠县" => "QRW", "祁县" => "QXV", "青县" => "QXP", "桥西" => "QXJ", "清徐" => "QUV", "旗下营" => "QXC", "千阳" => "QOY", "沁阳" => "QYF", "泉阳" => "QYL", "祁阳北" => "QVQ", "七营" => "QYJ", "庆阳山" => "QSJ", "清远" => "QBQ", "清原" => "QYT", "钦州东" => "QDZ", "全州" => "QZZ", "钦州" => "QRZ", "青州市" => "QZK", "瑞安" => "RAH", "荣昌" => "RCW", "瑞昌" => "RCG", "如皋" => "RBH", "容桂" => "RUQ", "任丘" => "RQP", "乳山" => "ROK", "融水" => "RSZ", "热水" => "RSD", "容县" => "RXZ", "饶阳" => "RVP", "汝阳" => "RYF", "绕阳河" => "RHD", "汝州" => "ROF", "石坝" => "OBJ", "上板城" => "SBP", "施秉" => "AQW", "上板城南" => "OBP", "世博园" => "ZWT", "双城北" => "SBB", "商城" => "SWN", "莎车" => "SCR", "顺昌" => "SCS", "舒城" => "OCH", "神池" => "SMV", "沙城" => "SCP", "石城" => "SCT", "山城镇" => "SCL", "山丹" => "SDJ", "顺德" => "ORQ", "绥德" => "ODY", "邵东" => "SOQ", "水洞" => "SIL", "商都" => "SXC", "十渡" => "SEP", "四道湾" => "OUD", "顺德学院" => "OJQ", "绅坊" => "OLH", "双丰" => "OFB", "四方台" => "STB", "水富" => "OTW", "三关口" => "OKJ", "桑根达来" => "OGC", "韶关" => "SNQ", "上高镇" => "SVK", "上杭" => "JBS", "沙海" => "SED", "松河" => "SBM", "沙河" => "SHP", "沙河口" => "SKT", "赛汗塔拉" => "SHC", "沙河市" => "VOP", "沙后所" => "SSD", "山河屯" => "SHL", "三河县" => "OXP", "四合永" => "OHD", "三汇镇" => "OZW", "双河镇" => "SEL", "石河子" => "SZR", "三合庄" => "SVP", "三家店" => "ODP", "水家湖" => "SQH", "沈家河" => "OJJ", "松江河" => "SJL", "尚家" => "SJB", "孙家" => "SUB", "沈家" => "OJB", "松江" => "SAH", "三江口" => "SKD", "司家岭" => "OLK", "松江南" => "IMH", "石景山南" => "SRP", "邵家堂" => "SJJ", "三江县" => "SOZ", "三家寨" => "SMM", "十家子" => "SJD", "松江镇" => "OZL", "施家嘴" => "SHM", "深井子" => "SWT", "什里店" => "OMP", "疏勒" => "SUR", "疏勒河" => "SHJ", "舍力虎" => "VLD", "石磷" => "SPB", "绥棱" => "SIB", "石岭" => "SOL", "石林" => "SLM", "石林南" => "LNM", "石龙" => "SLQ", "萨拉齐" => "SLC", "索伦" => "SNT", "商洛" => "OLY", "沙岭子" => "SLP", "三门峡南" => "SCF", "三门县" => "OQH", "石门县" => "OMQ", "三门峡西" => "SXF", "肃宁" => "SYP", "宋" => "SOB", "双牌" => "SBZ", "四平东" => "PPT", "遂平" => "SON", "沙坡头" => "SFJ", "商丘南" => "SPF", "水泉" => "SID", "石泉县" => "SXY", "石桥子" => "SQT", "石人城" => "SRB", "石人" => "SRL", "山市" => "SQB", "神树" => "SWB", "鄯善" => "SSR", "三水" => "SJQ", "泗水" => "OSK", "石山" => "SAD", "松树" => "SFT", "首山" => "SAT", "三十家" => "SRD", "三十里堡" => "SST", "松树镇" => "SSL", "松桃" => "MZQ", "索图罕" => "SHX", "三堂集" => "SDH", "石头" => "OTB", "神头" => "SEV", "沙沱" => "SFM", "上万" => "SWP", "孙吴" => "SKB", "沙湾县" => "SXR", "遂溪" => "SXZ", "沙县" => "SAS", "绍兴" => "SOH", "歙县" => "OVH", "石岘" => "SXL", "上西铺" => "SXM", "石峡子" => "SXJ", "绥阳" => "SYB", "沭阳" => "FMH", "寿阳" => "SYV", "水洋" => "OYP", "三阳川" => "SYJ", "上腰墩" => "SPJ", "三营" => "OEJ", "顺义" => "SOP", "三义井" => "OYD", "三源浦" => "SYL", "三原" => "SAY", "上虞" => "BDH", "上园" => "SUD", "水源" => "OYJ", "桑园子" => "SAJ", "绥中北" => "SND", "苏州北" => "OHH", "宿州东" => "SRH", "深圳东" => "BJQ", "深州" => "OZP", "孙镇" => "OZY", "绥中" => "SZD", "尚志" => "SZB", "师庄" => "SNM", "松滋" => "SIN", "师宗" => "SEM", "苏州园区" => "KAH", "苏州新区" => "ITH", "石嘴山" => "SZJ", "泰安" => "TMK", "台安" => "TID", "通安驿" => "TAJ", "桐柏" => "TBF", "通北" => "TBB", "汤池" => "TCX", "桐城" => "TTH", "郯城" => "TZK", "铁厂" => "TCL", "桃村" => "TCK", "通道" => "TRQ", "田东" => "TDZ", "天岗" => "TGL", "土贵乌拉" => "TGC", "通沟" => "TOL", "太谷" => "TGV", "塔哈" => "THX", "棠海" => "THM", "唐河" => "THF", "泰和" => "THG", "太湖" => "TKH", "团结" => "TIX", "谭家井" => "TNJ", "陶家屯" => "TOT", "唐家湾" => "PDQ", "统军庄" => "TZP", "泰康" => "TKX", "吐列毛杜" => "TMD", "图里河" => "TEX", "亭亮" => "TIZ", "田林" => "TFZ", "铜陵" => "TJH", "铁力" => "TLB", "铁岭西" => "PXT", "天门" => "TMN", "天门南" => "TNN", "太姥山" => "TLS", "土牧尔台" => "TRC", "土门子" => "TCJ", "潼南" => "TVW", "洮南" => "TVT", "太平川" => "TIT", "太平镇" => "TEB", "图强" => "TQX", "台前" => "TTK", "天桥岭" => "TQL", "土桥子" => "TQJ", "汤山城" => "TCT", "桃山" => "TAB", "塔石嘴" => "TIM", "通途" => "TUT", "汤旺河" => "THB", "同心" => "TXJ", "土溪" => "TSW", "桐乡" => "TCH", "田阳" => "TRZ", "桃映" => "TKQ", "天义" => "TND", "汤阴" => "TYF", "驼腰岭" => "TIL", "太阳山" => "TYJ", "汤原" => "TYB", "塔崖驿" => "TYP", "滕州东" => "TEK", "台州" => "TZH", "天祝" => "TZJ", "滕州" => "TXK", "天镇" => "TZV", "桐子林" => "TEW", "天柱山" => "QWH", "前锋" => "QFB", "庆盛" => "QSQ", "深圳北" => "IOQ", "通海" => "TAM", "武汉" => "WHN", "王家营西" => "KNM", "乌鲁木齐" => "WMR", "西安北" => "EAY", "西安" => "XAY", "西安南" => "CAY", "西宁西" => "XXO", "银川" => "YIJ", "郑州" => "ZZF", "五常" => "WCB", "武昌" => "WCN", "瓦房店" => "WDT", "威海" => "WKK", "芜湖" => "WHH", "乌海西" => "WXC", "吴家屯" => "WJT", "武隆" => "WLW", "乌兰浩特" => "WWT", "渭南" => "WNY", "威舍" => "WSM", "歪头山" => "WIT", "武威" => "WUJ", "武威南" => "WWJ", "无锡" => "WXH", "乌西" => "WXR", "乌伊岭" => "WPB", "武夷山" => "WAS", "万源" => "WYY", "万州" => "WYW", "梧州" => "WZZ", "温州" => "RZH", "温州南" => "VRH", "西昌" => "ECW", "许昌" => "XCF", "西昌南" => "ENW", "香坊" => "XFB", "轩岗" => "XGV", "兴国" => "EUG", "宣汉" => "XHY", "新会" => "EFQ", "新晃" => "XLQ", "锡林浩特" => "XTC", "兴隆县" => "EXP", "厦门北" => "XKS", "厦门" => "XMS", "厦门高崎" => "XBS", "秀山" => "ETW", "小市" => "XST", "向塘" => "XTG", "宣威" => "XWM", "新乡" => "XXF", "信阳" => "XUN", "咸阳" => "XYY", "襄阳" => "XFN", "熊岳城" => "XYT", "兴义" => "XRZ", "新沂" => "VIH", "新余" => "XUG", "徐州" => "XCH", "延安" => "YWY", "宜宾" => "YBW", "亚布力南" => "YWB", "叶柏寿" => "YBD", "宜昌东" => "HAN", "永川" => "YCW", "宜春" => "YCG", "宜昌" => "YCN", "盐城" => "AFH", "运城" => "YNV", "伊春" => "YCB", "榆次" => "YCV", "杨村" => "YBP", "伊尔施" => "YET", "燕岗" => "YGW", "永济" => "YIV", "延吉" => "YJL", "营口" => "YKT", "牙克石" => "YKX", "阎良" => "YNY", "玉林" => "YLZ", "榆林" => "ALY", "一面坡" => "YPB", "伊宁" => "YMR", "阳平关" => "YAY", "玉屏" => "YZW", "原平" => "YPV", "延庆" => "YNP", "阳泉曲" => "YYV", "玉泉" => "YQB", "阳泉" => "AQP", "玉山" => "YNG", "营山" => "NUW", "燕山" => "AOP", "榆树" => "YRT", "鹰潭" => "YTG", "烟台" => "YAK", "伊图里河" => "YEX", "玉田县" => "ATP", "义乌" => "YWH", "阳新" => "YON", "义县" => "YXD", "益阳" => "AEQ", "岳阳" => "YYQ", "永州" => "AOQ", "扬州" => "YLH", "淄博" => "ZBK", "镇城底" => "ZDV", "自贡" => "ZGW", "珠海" => "ZHQ", "珠海北" => "ZIQ", "湛江" => "ZJZ", "镇江" => "ZJH", "张家界" => "DIQ", "张家口" => "ZKP", "张家口南" => "ZMP", "周口" => "ZKN", "哲里木" => "ZLC", "扎兰屯" => "ZTX", "驻马店" => "ZDN", "肇庆" => "ZVQ", "周水子" => "ZIT", "昭通" => "ZDW", "中卫" => "ZWJ", "资阳" => "ZYW", "遵义" => "ZIW", "枣庄" => "ZEK", "资中" => "ZZW", "株洲" => "ZZQ", "枣庄西" => "ZFK", "文安" => "WBP", "武安" => "WAP", "王安镇" => "WVP", "旺苍" => "WEW", "五叉沟" => "WCT", "文昌" => "WEQ", "温春" => "WDB", "五大连池" => "WRB", "文登" => "WBK", "五道沟" => "WDL", "五道河" => "WHP", "文地" => "WNZ", "卫东" => "WVT", "武当山" => "WRN", "望都" => "WDP", "乌尔旗汗" => "WHX", "潍坊" => "WFK", "万发屯" => "WFB", "王府" => "WUT", "瓦房店西" => "WXT", "王岗" => "WGB", "武功" => "WGY", "湾沟" => "WGL", "吴官田" => "WGM", "乌海" => "WVC", "苇河" => "WHB", "卫辉" => "WHF", "吴家川" => "WCJ", "五家" => "WUB", "威箐" => "WAM", "午汲" => "WJP", "渭津" => "WJL", "王家湾" => "WJJ", "倭肯" => "WQB", "五棵树" => "WKT", "五龙背" => "WBT", "乌兰哈达" => "WLC", "万乐" => "WEB", "瓦拉干" => "WVX", "温岭" => "VHH", "五莲" => "WLK", "乌拉特前旗" => "WQC", "乌拉山" => "WSC", "卧里屯" => "WLX", "渭南北" => "WBY", "乌奴耳" => "WRX", "万宁" => "WNQ", "万年" => "WWG", "渭南南" => "WVY", "渭南镇" => "WNJ", "沃皮" => "WPT", "吴堡" => "WUY", "吴桥" => "WUP", "汪清" => "WQL", "武清" => "WWP", "温泉" => "WQM", "武山" => "WSJ", "文水" => "WEV", "魏善庄" => "WSP", "王瞳" => "WTP", "五台山" => "WSV", "王团庄" => "WZJ", "五五" => "WVR", "无锡东" => "WGH", "卫星" => "WVB", "闻喜" => "WXV", "武乡" => "WVV", "无锡新区" => "IFH", "武穴" => "WXN", "吴圩" => "WYZ", "王杨" => "WYB", "五营" => "WWB", "武义" => "RYH", "瓦窑田" => "WIM", "五原" => "WYC", "苇子沟" => "WZL", "韦庄" => "WZY", "五寨" => "WZV", "王兆屯" => "WZB", "微子镇" => "WQP", "魏杖子" => "WKD", "新安" => "EAM", "兴安" => "XAZ", "新安县" => "XAF", "新保安" => "XAP", "下板城" => "EBP", "西八里" => "XLP", "宣城" => "ECH", "兴城" => "XCD", "小村" => "XEM", "新绰源" => "XRX", "下城子" => "XCB", "新城子" => "XCT", "喜德" => "EDW", "小得江" => "EJM", "西大庙" => "XMP", "小董" => "XEZ", "小东" => "XOD", "西斗铺" => "XPC", "息烽" => "XFW", "信丰" => "EFG", "襄汾" => "XFV", "新干" => "EGG", "孝感" => "XGN", "西固城" => "XUJ", "夏官营" => "XGJ", "西岗子" => "NBB", "襄河" => "XXB", "新和" => "XIR", "宣和" => "XWJ", "斜河涧" => "EEP", "新华屯" => "XAX", "新华" => "XHB", "新化" => "EHQ", "宣化" => "XHP", "兴和西" => "XEC", "小河沿" => "XYD", "下花园" => "XYP", "小河镇" => "EKY", "徐家" => "XJB", "峡江" => "EJG", "新绛" => "XJV", "辛集" => "ENP", "新江" => "XJM", "西街口" => "EKM", "许家屯" => "XJT", "许家台" => "XTJ", "谢家镇" => "XMT", "兴凯" => "EKB", "小榄" => "EAQ", "香兰" => "XNB", "兴隆店" => "XDD", "新乐" => "ELP", "新林" => "XPX", "小岭" => "XLB", "新李" => "XLJ", "西林" => "XYB", "西柳" => "GCT", "仙林" => "XPH", "新立屯" => "XLD", "小路溪" => "XLM", "兴隆镇" => "XZB", "新立镇" => "XGT", "新民" => "XMD", "西麻山" => "XMB", "下马塘" => "XAT", "孝南" => "XNV", "咸宁北" => "XRN", "兴宁" => "ENQ", "咸宁" => "XNN", "西平" => "XPN", "兴平" => "XPY", "新坪田" => "XPM", "霞浦" => "XOS", "溆浦" => "EPQ", "犀浦" => "XIW", "新青" => "XQB", "新邱" => "XQD", "兴泉堡" => "XQJ", "仙人桥" => "XRL", "小寺沟" => "ESP", "杏树" => "XSB", "夏石" => "XIZ", "浠水" => "XZN", "下社" => "XSV", "徐水" => "XSP", "小哨" => "XAM", "新松浦" => "XOB", "杏树屯" => "XDT", "许三湾" => "XSJ", "湘潭" => "XTQ", "邢台" => "XTP", "仙桃西" => "XAN", "下台子" => "EIP", "徐闻" => "XJQ", "新窝铺" => "EPD", "修武" => "XWF", "新县" => "XSN", "息县" => "ENN", "西乡" => "XQY", "湘乡" => "XXQ", "西峡" => "XIF", "孝西" => "XOV", "小新街" => "XXM", "新兴县" => "XGQ", "西小召" => "XZC", "小西庄" => "XXP", "向阳" => "XDB", "旬阳" => "XUY", "旬阳北" => "XBY", "襄阳东" => "XWN", "兴业" => "SNZ", "小雨谷" => "XHM", "信宜" => "EEQ", "小月旧" => "XFM", "小扬气" => "XYX", "祥云" => "EXM", "襄垣" => "EIF", "夏邑县" => "EJH", "新友谊" => "EYB", "新阳镇" => "XZJ", "徐州东" => "UUH", "新帐房" => "XZX", "悬钟" => "XRP", "新肇" => "XZT", "忻州" => "XXV", "汐子" => "XZD", "西哲里木" => "XRD", "新杖子" => "ERP", "姚安" => "YAC", "依安" => "YAX", "永安" => "YAS", "永安乡" => "YNB", "渔坝村" => "YBM", "亚布力" => "YBB", "元宝山" => "YUD", "羊草" => "YAB", "秧草地" => "YKM", "阳澄湖" => "AIH", "迎春" => "YYB", "叶城" => "YER", "盐池" => "YKJ", "砚川" => "YYY", "阳春" => "YQQ", "宜城" => "YIN", "应城" => "YHN", "禹城" => "YCK", "晏城" => "YEK", "羊场" => "YED", "阳城" => "YNF", "阳岔" => "YAL", "郓城" => "YPK", "雁翅" => "YAP", "云彩岭" => "ACP", "虞城县" => "IXH", "营城子" => "YCT", "永登" => "YDJ", "英德" => "YDQ", "尹地" => "YDM", "永定" => "YGS", "雁荡山" => "YGH", "于都" => "YDG", "园墩" => "YAJ", "英德西" => "IIQ", "永福" => "YFZ", "永丰营" => "YYM", "杨岗" => "YRB", "阳高" => "YOV", "阳谷" => "YIK", "友好" => "YOB", "余杭" => "EVH", "沿河城" => "YHP", "岩会" => "AEP", "羊臼河" => "YHM", "永嘉" => "URH", "营街" => "YAM", "盐津" => "AEW", "余江" => "YHG", "叶集" => "YCH", "燕郊" => "AJP", "姚家" => "YAT", "岳家井" => "YGJ", "一间堡" => "YJT", "英吉沙" => "YIR", "云居寺" => "AFP", "燕家庄" => "AZK", "永康" => "RFH", "营口东" => "YGT", "银浪" => "YJX", "永郎" => "YLW", "宜良北" => "YSM", "永乐店" => "YDY", "伊拉哈" => "YLX", "伊林" => "YLB", "彝良" => "ALW", "杨林" => "YLM", "余粮堡" => "YLD", "杨柳青" => "YQP", "月亮田" => "YUM", "亚龙湾" => "TWQ", "杨陵镇" => "YSY", "义马" => "YMF", "云梦" => "YMN", "元谋" => "YMM", "阳明堡" => "YVV", "一面山" => "YST", "玉门镇" => "YXJ", "沂南" => "YNK", "宜耐" => "YVM", "伊宁东" => "YNR", "一平浪" => "YIM", "营盘水" => "YZJ", "羊堡" => "ABM", "营盘湾" => "YPC", "阳泉北" => "YPP", "乐清" => "UPH", "焉耆" => "YSR", "源迁" => "AQK", "姚千户屯" => "YQT", "阳曲" => "YQV", "榆树沟" => "YGP", "月山" => "YBF", "玉石" => "YSJ", "偃师" => "YSF", "沂水" => "YUK", "榆社" => "YSV", "窑上" => "ASP", "元氏" => "YSP", "杨树岭" => "YAD", "野三坡" => "AIP", "榆树屯" => "YSX", "榆树台" => "YUT", "鹰手营子" => "YIP", "源潭" => "YTQ", "牙屯堡" => "YTZ", "烟筒山" => "YSL", "烟筒屯" => "YUX", "羊尾哨" => "YWM", "越西" => "YHW", "攸县" => "YOG", "玉溪" => "YXM", "永修" => "ACG", "酉阳" => "AFW", "余姚" => "YYH", "弋阳东" => "YIG", "岳阳东" => "YIQ", "阳邑" => "ARP", "鸭园" => "YYL", "鸳鸯镇" => "YYJ", "燕子砭" => "YZY", "宜州" => "YSZ", "仪征" => "UZH", "兖州" => "YZK", "迤资" => "YQM", "羊者窝" => "AEM", "杨杖子" => "YZD", "镇安" => "ZEY", "治安" => "ZAD", "招柏" => "ZBP", "张百湾" => "ZUP", "枝城" => "ZCN", "子长" => "ZHY", "诸城" => "ZQK", "邹城" => "ZIK", "赵城" => "ZCV", "章党" => "ZHT", "肇东" => "ZDB", "照福铺" => "ZFM", "章古台" => "ZGD", "赵光" => "ZGB", "中和" => "ZHX", "中华门" => "VNH", "枝江北" => "ZIN", "钟家村" => "ZJY", "朱家沟" => "ZUB", "紫荆关" => "ZYP", "周家" => "ZOB", "诸暨" => "ZDH", "镇江南" => "ZEH", "周家屯" => "ZOD", "郑家屯" => "ZJD", "褚家湾" => "CWJ", "湛江西" => "ZWQ", "朱家窑" => "ZUJ", "曾家坪子" => "ZBW", "张兰" => "ZLV", "镇赉" => "ZLT", "枣林" => "ZIV", "扎鲁特" => "ZLD", "扎赉诺尔西" => "ZXX", "樟木头" => "ZOQ", "中牟" => "ZGF", "中宁东" => "ZDJ", "中宁" => "VNJ", "中宁南" => "ZNJ", "镇平" => "ZPF", "漳平" => "ZPS", "泽普" => "ZPR", "枣强" => "ZVP", "张桥" => "ZQY", "章丘" => "ZTK", "朱日和" => "ZRC", "泽润里" => "ZLM", "中山北" => "ZGQ", "樟树东" => "ZOG", "中山" => "ZSQ", "柞水" => "ZSY", "钟山" => "ZSZ", "樟树" => "ZSG", "珠窝" => "ZOP", "张维屯" => "ZWB", "彰武" => "ZWD", "棕溪" => "ZOY", "钟祥" => "ZTN", "资溪" => "ZXS", "镇西" => "ZVT", "张辛" => "ZIP", "正镶白旗" => "ZXC", "紫阳" => "ZVY", "枣阳" => "ZYN", "竹园坝" => "ZAW", "张掖" => "ZYJ", "镇远" => "ZUW", "朱杨溪" => "ZXW", "漳州东" => "GOS", "漳州" => "ZUS", "壮志" => "ZUX", "子洲" => "ZZY", "中寨" => "ZZM", "涿州" => "ZXP", "咋子" => "ZAL", "卓资山" => "ZZC", "株洲西" => "ZAQ", "许昌东" => "XVF", "孝感北" => "XJN", "邢台东" => "EDP", "新乡东" => "EGF", "西阳村" => "XQF", "信阳东" => "OYN", "雨格" => "VTM", "正定机场" => "ZHP", "织金" => "IZW", "驻马店西" => "ZLN", "涿州东" => "ZAP", "卓资东" => "ZDC", "郑州东" => "ZAF" ); ?>
php function gettrain($start,$end,$data,$time){ $station = include('./name.php'); $startstaion = $station[$start]; $endstation = $station[$end]; if(empty($data)){ $date = date("Y-m-d",time()); }else{ $num = explode("-", $data); if(count($num)==2){ $date = date("Y",time())."-".$data; }else if(count($num)==3){ $date = $data; }else{ exit("time error"); } } if(empty($startstaion)||empty($endstation)){ exit("stdin error"); } $url ="http://kyfw.12306.cn/otn/lcxxcx/query?purpose_codes=ADULT&queryDate=".$date."&from_station=".$startstaion."&to_station=".$endstation; $data = doget($url); $rdata; $rdatacount = 0; if(!$data['status']){ exit('check error'); }else{ $data = $data['data']['datas']; foreach ($data as $key => $value) { $start_time = $date." ".$data[$key]["start_time"]; $ttime = $date." ".$time; if(strtotime($start_time)<strtotime($ttime)){ continue; } $tcount = $rdatacount++; if($tcount==10){ break; } $rdata[$tcount]["gr_num"] = $data[$key]["gr_num"]; $rdata[$tcount]["qt_num"] = $data[$key]["qt_num"]; $rdata[$tcount]["rw_num"] = $data[$key]["rw_num"]; $rdata[$tcount]["rz_num"] = $data[$key]["rz_num"]; $rdata[$tcount]["tz_num"] = $data[$key]["tz_num"]; $rdata[$tcount]["wz_num"] = $data[$key]["wz_num"]; $rdata[$tcount]["yw_num"] = $data[$key]["yw_num"]; $rdata[$tcount]["yz_num"] = $data[$key]["yz_num"]; $rdata[$tcount]["ze_num"] = $data[$key]["ze_num"]; $rdata[$tcount]["zy_num"] = $data[$key]["zy_num"]; $rdata[$tcount]["swz_num"]= $data[$key]["swz_num"]; $rdata[$tcount]["train_no"] = $data[$key]["train_no"]; $rdata[$tcount]["from_station_no"] = $data[$key]["from_station_no"]; $rdata[$tcount]["to_station_no"] = $data[$key]["to_station_no"]; $rdata[$tcount]["seat_types"] = $data[$key]["seat_types"]; $rdata[$tcount]["lishi"] = $data[$key]["lishi"]; $rdata[$tcount]["arrive_time"] = $data[$key]["arrive_time"]; $rdata[$tcount]["start_time"] = $data[$key]["start_time"]; $rdata[$tcount]["end_station_name"] = $data[$key]["end_station_name"]; $rdata[$tcount]["start_station_name"] = $data[$key]["start_station_name"]; $rdata[$tcount]["station_train_code"] = $data[$key]["station_train_code"]; $rdata[$tcount]["date"] = $date; } } return $rdata; } function doget($url){ if(function_exists('file_get_contents')) { $optionget = array('http' => array('method' => "GET", 'header' => "User-Agent:Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0; .NET CLR 3.5.21022; .NET CLR 3.0.04506; CIBA)\r\nAccept:*/*\r\nReferer:https://kyfw.12306.cn/otn/lcxxcx/init")); $file_contents = file_get_contents($url, false , stream_context_create($optionget)); } else { $ch = curl_init(); $timeout = 5; $header = array( 'Accept:*/*', 'Accept-Charset:GBK,utf-8;q=0.7,*;q=0.3', 'Accept-Encoding:gzip,deflate,sdch', 'Accept-Language:zh-CN,zh;q=0.8,ja;q=0.6,en;q=0.4', 'Connection:keep-alive', 'Host:kyfw.12306.cn', 'Referer:https://kyfw.12306.cn/otn/lcxxcx/init', ); curl_setopt ($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_HTTPHEADER,$header); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST,1); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $timeout); $file_contents = curl_exec($ch); curl_close($ch); //exit( $file_contents); } $file_contents = json_decode($file_contents,true); return $file_contents; } ?>
6.微信效果