|
|
|
|
<?php
|
|
|
|
|
/*
|
|
|
|
|
* @Author: your name
|
|
|
|
|
* @Date: 2020-01-14 11:19:04
|
|
|
|
|
* @LastEditTime: 2020-05-08 14:22:49
|
|
|
|
|
* @LastEditors: Please set LastEditors
|
|
|
|
|
* @Description: In User Settings Edit
|
|
|
|
|
* @FilePath: \information-system\application\third_party\updatetrain\controllers\updatestation.php
|
|
|
|
|
* 本地运行地址:http://202.103.68.144:65008/info.php/thirdparty/updatetrain/updatestation/
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
defined('BASEPATH') or exit('No direct script access allowed');
|
|
|
|
|
ini_set('memory_limit', '256M');
|
|
|
|
|
set_time_limit(0);
|
|
|
|
|
class updatestation extends CI_Controller
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public function __construct()
|
|
|
|
|
{
|
|
|
|
|
parent::__construct();
|
|
|
|
|
$this->load->model("station_model");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public function index()
|
|
|
|
|
{
|
|
|
|
|
//
|
|
|
|
|
$this->load->view('bootstrap3/header');
|
|
|
|
|
$this->load->view('updatestation');
|
|
|
|
|
$this->load->view('bootstrap3/footer');
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public function test()
|
|
|
|
|
{
|
|
|
|
|
$results = "";
|
|
|
|
|
for ($i = 1; $i <= 2000000; $i++) {
|
|
|
|
|
$results .= '"' . $i . '"';
|
|
|
|
|
}
|
|
|
|
|
$len = strlen($results);
|
|
|
|
|
header("Content-Length: " . $len);
|
|
|
|
|
header("Content-Encoding:UTF-8");
|
|
|
|
|
echo $results;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @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 = "";
|
|
|
|
|
$UpdateStaion = "";
|
|
|
|
|
for ($i = 0; $i < count($arr_Station); $i++) {
|
|
|
|
|
if ($arr_Station[$i] != null) {
|
|
|
|
|
$arr_StationDetail = explode("|", $arr_Station[$i]);
|
|
|
|
|
$TRS_Code = $arr_StationDetail[2];
|
|
|
|
|
$TRS_StationCN = $arr_StationDetail[1];
|
|
|
|
|
$TRS_Station = $arr_StationDetail[3];
|
|
|
|
|
// print_r($arr_StationDetail);
|
|
|
|
|
//对比数据库,如果是新的就保存
|
|
|
|
|
$isNew = $this->station_model->CompareStation($TRS_Code, $TRS_StationCN);
|
|
|
|
|
if ($isNew == 1) {
|
|
|
|
|
//更新
|
|
|
|
|
$strStation = "@-1|" . $TRS_Code . "|" . $TRS_Station . "|" . $TRS_StationCN . "|2|";
|
|
|
|
|
$UpdateStaion .= $strStation;
|
|
|
|
|
//表操作
|
|
|
|
|
$this->station_model->UpdateStation($TRS_Code, $TRS_StationCN);
|
|
|
|
|
} else if ($isNew == 2) {
|
|
|
|
|
//新增
|
|
|
|
|
$strStation = "@9999|" . $TRS_Code . "|" . $TRS_Station . "|" . $TRS_StationCN . "|2|";
|
|
|
|
|
$NewStation .= $strStation;
|
|
|
|
|
//表增加操作
|
|
|
|
|
$data["StationCN"] = $TRS_StationCN;
|
|
|
|
|
$data["Station"] = $TRS_Station;
|
|
|
|
|
$data["Code"] = $TRS_Code;
|
|
|
|
|
$this->station_model->AddStation($data);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
$NewStationList = $UpdateStaion . $NewStation;
|
|
|
|
|
|
|
|
|
|
$len = strlen($NewStationList); //count( explode("@",$NewStationList))-1;
|
|
|
|
|
header("Content-Length: " . $len);
|
|
|
|
|
header("Content-Encoding:UTF-8");
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if ($len > 0) {
|
|
|
|
|
//发送邮件
|
|
|
|
|
$this->station_model->SendMail(
|
|
|
|
|
"UpdateStationSystem",
|
|
|
|
|
"noreplay@email.com",
|
|
|
|
|
'zhaopeng',
|
|
|
|
|
'zhaopeng@hainatravel.com',
|
|
|
|
|
'New Station(by12306):' . date("Y-m-d"),
|
|
|
|
|
$NewStationList
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
echo $NewStationList;
|
|
|
|
|
}else{
|
|
|
|
|
echo "无站点更新";
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @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]) {
|
|
|
|
|
|
|
|
|
|
$isNew = false;
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if ($isNew) {
|
|
|
|
|
$NewStation .= $arr_Station[$i] . "@";
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
echo $NewStation;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @description: 目前站点文件与翰特数据对比,导入HT没有的数据
|
|
|
|
|
* @param {type}
|
|
|
|
|
* @return:
|
|
|
|
|
*/
|
|
|
|
|
public 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; $i < count($arr_StationFile); $i++) {
|
|
|
|
|
$arr_StationFileDetail = explode("|", $arr_StationFile[$i]);
|
|
|
|
|
//对比数据库,如果是新的就保存
|
|
|
|
|
$isNew = $this->station_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);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (strlen($NewStation) > 0) {
|
|
|
|
|
//发送邮件
|
|
|
|
|
$this->station_model->SendMail(
|
|
|
|
|
"UpdateStationSystem",
|
|
|
|
|
"noreplay@email.com",
|
|
|
|
|
'zhaopeng',
|
|
|
|
|
'zhaopeng@hainatravel.com',
|
|
|
|
|
'站点文件导入HT:' . date("Y-m-d"),
|
|
|
|
|
$NewStation
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
echo $NewStation;
|
|
|
|
|
} else {
|
|
|
|
|
echo ("无新站点");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @description: 从HT获取最新的站点信息
|
|
|
|
|
* @param {type}
|
|
|
|
|
* @return:
|
|
|
|
|
*/
|
|
|
|
|
public 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;
|
|
|
|
|
$TRS_ID = $Item->TRS_ID;
|
|
|
|
|
$TRS_StationCN = $Item->TRS_StationCN;
|
|
|
|
|
$TRS_Station = $Item->TRS_Station;
|
|
|
|
|
$TRS_Code = $Item->TRS_Code;
|
|
|
|
|
for ($i = 0; $i < count($arr_StationFile); $i++) {
|
|
|
|
|
$arr_StationFileDetail = explode("|", $arr_StationFile[$i]);
|
|
|
|
|
//对比数据库,如果是新的就保存
|
|
|
|
|
if ($TRS_StationCN == $arr_StationFileDetail[3] && $TRS_Code == $arr_StationFileDetail[1]) {
|
|
|
|
|
$isNew = false;
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if ($isNew) {
|
|
|
|
|
$strStation = "@" . $TRS_ID . "|" . $TRS_Code . "|" . $TRS_Station . "|" . $TRS_StationCN . "|2|";
|
|
|
|
|
$NewStation .= $strStation;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
// echo $NewStation;
|
|
|
|
|
|
|
|
|
|
//发送邮件
|
|
|
|
|
$this->station_model->SendMail(
|
|
|
|
|
"UpdateStationSystem",
|
|
|
|
|
"noreplay@email.com",
|
|
|
|
|
'zhaopeng',
|
|
|
|
|
'zhaopeng@hainatravel.com',
|
|
|
|
|
'New Station:' . date("Y-m-d"),
|
|
|
|
|
$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 */
|