diff --git a/application/third_party/updatetrain/controllers/updatestation.php b/application/third_party/updatetrain/controllers/updatestation.php new file mode 100644 index 00000000..7359e38f --- /dev/null +++ b/application/third_party/updatetrain/controllers/updatestation.php @@ -0,0 +1,174 @@ +load->model("station_model"); + } + + + public function index() + { + // + $this->load->view('bootstrap3/header'); + $this->load->view('updatestation'); + $this->load->view('bootstrap3/footer'); + } + + /** + * @description: 从12306抓取数据对比翰特数据库 + * @param {type} + * @return: + */ + public function getstatioBy12306() + { + $stationUrl = "https://kyfw.12306.cn/otn/resources/js/framework/station_name.js"; + $StationData = $this->get_data($stationUrl); + // echo $StationData; + $arr_Station = explode("@", str_replace("';", "", str_replace("var station_names ='", "", $StationData))); + //print_r($arr_Station); + $NewStation = ""; + for ($i = 0; $i < count($arr_Station); $i++) { + if ($arr_Station[$i] != null) { + $arr_StationDetail = explode("|", $arr_Station[$i]); + // print_r($arr_StationDetail); + //对比数据库,如果是新的就保存 + $isNew = $this->station_model->GetStationCount($arr_StationDetail[2], $arr_StationDetail[1]); + if ($isNew) { + $NewStation .= $arr_Station[$i]."@"; + } + } + } + echo $NewStation; + } + + /** + * @description: 对比12306与目前的站点文件 + * @param {type} + * @return: + */ + public function getNewStationByFile() + { + $stationUrl = "https://kyfw.12306.cn/otn/resources/js/framework/station_name.js"; + $StationData = $this->get_data($stationUrl); + $StationFileUrl = "https://biz.chinahighlights.com/china-trains/js/train/StationInfo.js"; + $StationFileData = $this->get_data($StationFileUrl); + // echo $StationData; + $arr_Station = explode("@", str_replace("';", "", str_replace("var station_names ='", "", $StationData))); + $arr_StationFile = explode("@", str_replace("\";", "", str_replace("var station_names =\"", "", $StationFileData))); + //print_r($arr_Station); + $NewStation = ""; + for ($i = 0; $i < count($arr_Station); $i++) { + $isNew = true; + $arr_StationDetail = explode("|", $arr_Station[$i]); + for ($j = 0; $j < count($arr_StationFile); $j++) { + if ($arr_Station[$i] != null) { + $arr_StationFileDetail = explode("|", $arr_StationFile[$j]); + //对比目前的站点文件,如果是新的就保存 + if ($arr_StationDetail[2] == $arr_StationFileDetail[1] && $arr_StationDetail[1] == $arr_StationFileDetail[3]) { + //break; + $isNew = false; + break; + // continue 2; + } + } + } + if ($isNew) { + $NewStation .= $arr_Station[$i]."@"; + } + } + echo $NewStation; + } + + /** + * @description: 目前站点文件与翰特数据对比 + * @param {type} + * @return: + */ + function CheckFileAndHT(){ + $StationFileUrl = "https://biz.chinahighlights.com/china-trains/js/train/StationInfo.js"; + $StationFileData = $this->get_data($StationFileUrl); + $arr_StationFile = explode("@", str_replace("\";", "", str_replace("var station_names =\"", "", $StationFileData))); + $NewStation = ""; + for ($i=0;$istation_model->GetStationCount($arr_StationFileDetail[1], $arr_StationFileDetail[3]); + if ($isNew) { + $NewStation .= $arr_StationFile[$i]."@"; + + //保存到数据库 + $data["StationCN"] = $arr_StationFileDetail[3]; + $data["Station"] = $arr_StationFileDetail[2]; + $data["Code"] = $arr_StationFileDetail[1]; + $this->station_model->AddStation($data); + } + } + echo $NewStation; + } + + + /** + * @description: 从HT获取最新的站点信息 + * @param {type} + * @return: + */ + function GetNewStationFromHT(){ + //先获取当前使用的站点文件 + $StationFileUrl = "https://biz.chinahighlights.com/china-trains/js/train/StationInfo.js"; + $StationFileData = $this->get_data($StationFileUrl); + $arr_StationFile = explode("@", str_replace("\";", "", str_replace("var station_names =\"", "", $StationFileData))); + $NewStation = ""; + + //循环HT站点表对比 + $StationList = $this->station_model->GetStationList(); + foreach($StationList as $Item){ + $isNew = true; + for ($i=0;$iTRS_StationCN; + $TRS_Station = $Item->TRS_Station; + $TRS_Code = $Item->TRS_Code; + if ($TRS_StationCN==$arr_StationFileDetail[3] && $TRS_Code==$arr_StationFileDetail[1]){ + $isNew = false; + break; + } + } + if ($isNew) { + $NewStation .= $arr_StationFile[$i]."@"; + } + } + echo $NewStation; + } + + + function get_data($url) + { + $ch = curl_init(); + curl_setopt($ch, CURLOPT_URL, $url); + curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); + curl_setopt($ch, CURLOPT_HEADER, 0); + curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); //不验证https证书 + $output = curl_exec($ch); + curl_close($ch); + return $output; + } +} + +/* End of file updatestation.php */ diff --git a/application/third_party/updatetrain/models/station_model.php b/application/third_party/updatetrain/models/station_model.php new file mode 100644 index 00000000..2d4f2793 --- /dev/null +++ b/application/third_party/updatetrain/models/station_model.php @@ -0,0 +1,74 @@ +HT = $this->load->database('HT', TRUE); + } + + + /** + * @description: 判断数据库里面是否有该站点的信息 + * @param {type}$code 三字码,$name 车站名 + * @return: bool + */ + function GetStationCount($code,$name){ + $sql = " select top 1 * from TrainStation + where TRS_Code=? and TRS_StationCN='".$name."'"; + $name = iconv ( "utf-8", "gb2312//IGNORE", $name ); + $query = $this->HT->query($sql,array($code)); + if ($query->result()){ + return false; + }else{ + return true; + } + + } + + /** + * @description: 获取HT里面的站点信息列表 + * @param {type} + * @return: + */ + function GetStationList(){ + $sql = "select TRS_StationCN,TRS_Station,TRS_Code FROM TrainStation where TRS_Use=1"; + $query = $this->HT->query($sql); + return $query->result(); + } + + + /** + * @description: 增加新站点 + * @param {type} + * @return: + */ + function AddStation($data){ + + //TrainStation表 + $sql = " + insert into TrainStation (TRS_StationCN,TRS_Station,LastEditTime,TRS_Code,TRS_Use,TRS_IsNew) + values(?,?,getdate(),?,1,1) + "; + $param = array($data["StationCN"],$data["Station"],$data["Code"]); + $query = $this->HT->query($sql,$param); + $TRS_ID = $this->HT->insert_id(); + + //语种表TrainStation2,中英文都得添加 + $sql2=" insert into TrainStation2 (TS2_Name,TS2_LGC,TS2_TRSID,LastEditTime) + values(?,1,?,GETDATE())"; + $param = array($data["Station"],$TRS_ID); + $query = $this->HT->query($sql2,$param); + $sql2=" insert into TrainStation2 (TS2_Name,TS2_LGC,TS2_TRSID,LastEditTime) + values(?,2,?,GETDATE())"; + $param = array($data["StationCN"],$TRS_ID); + $query = $this->HT->query($sql2,$param); + + + } +} + +/* End of file station_model.php */ diff --git a/application/third_party/updatetrain/views/updatestation.php b/application/third_party/updatetrain/views/updatestation.php new file mode 100644 index 00000000..3beccc9f --- /dev/null +++ b/application/third_party/updatetrain/views/updatestation.php @@ -0,0 +1,34 @@ +
+ +
+
+
+
更新国内火车站点信息
+
+ + + + + + + + + + + + + + +
  +
+ +
+
 
 请等待:当前进度:0% 
+
+
+
+ \ No newline at end of file