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 */