最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

php實現(xiàn)12306火車票余票查詢和價格查詢(12306火車票查詢)

 更新時間:2014年01月14日 09:19:02   投稿:zxhpj  
這篇文章主要介紹了使用php實現(xiàn)的12306火車票余票查詢和價格查詢功能,大家參考使用吧

name.php

復(fù)制代碼 代碼如下:

<?php
train.php
[code]
<?php
/*
 *@Description 火車票余票查詢和價格查詢
 *@author           widuu
 *@mktime           2014/1/13
 */
header("content-type:text/html;charset='utf-8'");
function gettrain($start,$end,$data){
    $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);
    if(!$data['status']){
        exit('check error');
    }else{
        $data = $data['data']['datas'];
        foreach ($data as $key => $value) {
            $price = doget("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");
                        $data[$key]["gr_num"] =  $data[$key]["gr_num"]."(".$price["data"]["A6"].")";
                        $data[$key]["qt_num"] =  $data[$key]["qt_num"]."(".$price["data"]["OT"][0].")";
                        $data[$key]["rw_num"] =  $data[$key]["rw_num"]."(".$price["data"]["A4"].")";
                        $data[$key]["rz_num"] =  $data[$key]["rz_num"]."(".$price["data"]["A2"].")";
                        $data[$key]["tz_num"] =  $data[$key]["tz_num"]."(".$price["data"]["P"].")";
                        $data[$key]["wz_num"] =  $data[$key]["wz_num"]."(".$price["data"]["WZ"].")";
                        $data[$key]["yw_num"] =  $data[$key]["yw_num"]."(".$price["data"]["A3"].")";
                        $data[$key]["yz_num"] =  $data[$key]["yz_num"]."(".$price["data"]["A1"].")";
                        $data[$key]["ze_num"] =  $data[$key]["ze_num"]."(".$price["data"]["O"].")";
                        $data[$key]["zy_num"] =  $data[$key]["zy_num"]."(".$price["data"]["M"].")";
                        $data[$key]["swz_num"]=  $data[$key]["swz_num"]."(".$price["data"]["A9"].")";
        }
    }
    return $data;
}

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_RETURNTRANSFER, 1);
            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);
    }
    $file_contents = json_decode($file_contents,true);
    return $file_contents;
}
/*
 *這個由于時間緊寫的,所以很多地方還需要優(yōu)化,希望大家改善一下,可以分部和文件緩存的形式提高執(zhí)行速度--缺點執(zhí)行速度慢--有待優(yōu)化
 */
$data = gettrain("北京","天津","01-03");
/*
 *   ["gr_num"]=>高級軟臥
 *   ["qt_num"]=>其他
 *   ["rw_num"]=> 軟臥
 *   ["rz_num"]=>軟座
 *   ["tz_num"]=>特等座
 *   ["wz_num"]=>無座
 *   ["yw_num"]=>硬臥
 *   ["yz_num"]=>硬座
 *   ["ze_num"]=>二等座
 *   ["zy_num"]=> 一等座
 *   ["swz_num"]=> 商務(wù)座
 */
$str="";
foreach($data as $key =>$value){
        $str.="火車列次:{$data[$key]['station_train_code']}";
        $str.="始發(fā)站:{$data[$key]['start_station_name']},終點站{$data[$key]['end_station_name']}<br>";
        $str.="出發(fā)時間:{$data[$key]['start_time']},到站時間:{$data[$key]['arrive_time']}<br>";
        $str.="";
        $str.= strpos($data[$key]["gr_num"],"()") ? "" :"高級軟臥余票和價格:".$data[$key]["gr_num"]."<br>";
        $str.= strpos($data[$key]["qt_num"],"()") ? "" :"其他余票和價格:".$data[$key]["qt_num"]."<br>";
        $str.= strpos($data[$key]["rw_num"],"()") ? "" :"軟臥余票和價格:".$data[$key]["rw_num"]."<br>";
        $str.= strpos($data[$key]["rz_num"],"()") ? "" :"軟座余票和價格:".$data[$key]["rz_num"]."<br>";
        $str.= strpos($data[$key]["tz_num"],"()") ? "" :"特等座余票和價格:".$data[$key]["tz_num"]."<br>";
        $str.= strpos($data[$key]["wz_num"],"()") ? "" :"無座余票和價格:".$data[$key]["wz_num"]."<br>";
        $str.= strpos($data[$key]["yw_num"],"()") ? "" :"硬臥余票和價格:".$data[$key]["yw_num"]."<br>";
        $str.= strpos($data[$key]["yz_num"],"()") ? "" :"硬座余票和價格:".$data[$key]["yz_num"]."<br>";
        $str.= strpos($data[$key]["ze_num"],"()") ? "" :"二等座余票和價格:".$data[$key]["ze_num"]."<br>";
        $str.= strpos($data[$key]["zy_num"],"()") ? "" :"一等座余票和價格:".$data[$key]["zy_num"]."<br>";
        $str.= strpos($data[$key]["swz_num"],"()") ? "" :"商務(wù)座余票和價格:".$data[$key]["swz_num"]."<br>";
        $str.= "======================下一列火車上===============================<br>";
}
echo $str;

相關(guān)文章

  • PHP中cookie和session的區(qū)別實例分析

    PHP中cookie和session的區(qū)別實例分析

    這篇文章主要介紹了PHP中cookie和session的區(qū)別,比較詳盡的分析了二者從創(chuàng)建、運用到清除的各個流程的注意事項,需要的朋友可以參考下
    2014-08-08
  • Laravel5.6框架使用CKEditor5相關(guān)配置詳解

    Laravel5.6框架使用CKEditor5相關(guān)配置詳解

    這篇文章主要介紹了Laravel5.6框架使用CKEditor5相關(guān)配置,結(jié)合實例形式詳細分析了Laravel5.6框架整合CKEditor5編輯器相關(guān)操作技巧與注意事項,需要的朋友可以參考下
    2019-07-07
  • PHP+Redis鏈表解決高并發(fā)下商品超賣問題(實現(xiàn)原理及步驟)

    PHP+Redis鏈表解決高并發(fā)下商品超賣問題(實現(xiàn)原理及步驟)

    這篇文章主要介紹了PHP+Redis鏈表解決高并發(fā)下商品超賣問題,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-08-08
  • PHP連接MYSQL數(shù)據(jù)庫實例代碼

    PHP連接MYSQL數(shù)據(jù)庫實例代碼

    現(xiàn)在做的項目需要php連接mysql數(shù)據(jù)庫,雖然之前學過,但是現(xiàn)在基本上都給忘了,之后通過查找相關(guān)資料找到了解決方法,下面小編把具體方法分享在腳本之家平臺供大家學習
    2016-01-01
  • eWebEditor v3.8 商業(yè)完整版 (PHP)

    eWebEditor v3.8 商業(yè)完整版 (PHP)

    eWebEditor v3.8 商業(yè)完整版 (PHP)...
    2006-12-12
  • Yii2 assets清除緩存的方法

    Yii2 assets清除緩存的方法

    這篇文章主要介紹了Yii2 assets清除緩存的方法,涉及Yii中assets相關(guān)函數(shù)調(diào)用與配置技巧,需要的朋友可以參考下
    2016-05-05
  • thinkphp5使用phpmail發(fā)送qq郵件的實現(xiàn)過程

    thinkphp5使用phpmail發(fā)送qq郵件的實現(xiàn)過程

    這篇文章主要給大家介紹了thinkphp5使用phpmail發(fā)送qq郵件的實現(xiàn)過程,文中有詳細的代碼示例供大家參考,具有一定的參考價值,感興趣的小伙伴可以自己動手嘗試一下
    2023-10-10
  • CodeIgniter控制器之業(yè)務(wù)邏輯實例分析

    CodeIgniter控制器之業(yè)務(wù)邏輯實例分析

    這篇文章主要介紹了CodeIgniter控制器之業(yè)務(wù)邏輯使用方法,結(jié)合實例形式分析了業(yè)務(wù)邏輯所涉及的相關(guān)概念與具體使用方法,需要的朋友可以參考下
    2016-01-01
  • Symfony模板的快捷變量用法實例

    Symfony模板的快捷變量用法實例

    這篇文章主要介紹了Symfony模板的快捷變量用法,以簡單實例形式分析了Symfony模板快捷變量調(diào)用的三種常見方法,需要的朋友可以參考下
    2016-03-03
  • thinkphp緩存技術(shù)詳解

    thinkphp緩存技術(shù)詳解

    這篇文章主要介紹了thinkphp緩存技術(shù),詳細分析了緩存技術(shù)的特點以及在ThinkPHP中緩存的實際應(yīng)用技巧,具有一定的參考借鑒價值,需要的朋友可以參考下
    2014-12-12

最新評論

高雄县| 阿荣旗| 垣曲县| 阿巴嘎旗| 巴青县| 建平县| 曲阜市| 陇川县| 米林县| 泗水县| 平潭县| 大石桥市| 丰县| 鹤岗市| 台南市| 阿合奇县| 潜山县| 灌南县| 曲水县| 安多县| 河西区| 公安县| 稷山县| 闽侯县| 贡山| 临颍县| 涪陵区| 墨玉县| 饶河县| 潞西市| 黎城县| 沈阳市| 闽清县| 丹阳市| 祁门县| 虞城县| 厦门市| 瑞安市| 溧水县| 闸北区| 山西省|