ホームページ > php教程 > php手册 > PHP電車残券照会API、12306公式API

PHP電車残券照会API、12306公式API

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
リリース: 2016-06-21 08:49:33
オリジナル
1154 人が閲覧しました

我在做自己微信的时候需要的火车票查询的东西,注册的东西等等太多了,今天就简单的做了下测试看能获取到不,数据怎么样处理速度怎么样,因为是个人做所以就没有去其他网站上找接口,就自己做了下!下边把方法放出来!

 

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

<?php

/**

 *火车票查询方法 简单尝试

 *

 * @copyright           widuu

 * @license         http://www.widuu.com

 * @lastmodify          2013-6-20

 */

 

function json_array($json){

        if($json){

            foreach ((array)$json as $k=>$v){

                $data[$k] = !is_string($v)? json_array($v):$v;

            }

            return $data;

        }

    }

function doget ($start,$end,$time) // get获取数据使用

    {

        if(empty($time)){

            $time = date('Y-m-d',time());

        }else{

            if(substr($time,0,1)!=0){

                $time = date('Y-0',time()).$time;

                echo substr($time,0,1);

            }else{

                $time = date('Y-',time()).$time;

            }

        }

        $name = include ("../name.php");

        $star = $name[$start];

        $end = $name[$end];

        $url = "http://dynamic.12306.cn/otsquery/query/queryRemanentTicketAction.do?method=queryLeftTicket&orderRequest.train_date={$time}&orderRequest.from_station_telecode={$star}&orderRequest.to_station_telecode={$end}&orderRequest.train_no=&trainPassType=QB&trainClass=QB%23D%23Z%23T%23K%23QT%23&includeStudent=00&seatTypeAndNum=&orderRequest.start_time_str=00%3A00--24%3A00";

        $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:http://dynamic.12306.cn/otsquery/query/queryRemanentTicketAction.do?method=init"));

        $file = file_get_contents($url, false , stream_context_create($optionget));

        return json_array(json_decode($file));

    }

    $result = doget("北京","廊坊","6-23");

    $result = strip_tags($result['datas']);

    $return_str = str_replace(" ","",$result);

    $return_str = str_replace("\\n","",$return_str);

    $a = explode(",",$return_str);

    $name =array();

    $c = array_chunk($a,16);

    array_pop($c);

    foreach($c as $k =>$v){

        $str="余票:<br>商务座:".$v[5].",特等座:".$v[6].",一等座:".$v[7].",二等座:".$v[8].",高级软卧:".$v[9].",软卧:".$v[10].",硬卧:".$v[11].",软座:".$v[12].",硬座:".$v[13].",无座:".$v[14].",其他:".$v[15];

        $str = preg_replace("/,硬座\:--,/","",$str);

        $str = preg_replace("/商务座\:--,/","",$str);

        $str = preg_replace("/,特等座\:--,/","",$str);

        $str = preg_replace("/,一等座\:--,/","",$str);

        $str = preg_replace("/,二等座\:--,/","",$str);

        $str = preg_replace("/,高级软卧\:--,/","",$str);

        $str = preg_replace("/,软卧\:--,/","",$str);

        $str = preg_replace("/,硬卧\:--,/","",$str);

        $str = preg_replace("/,软座\:--,/","",$str);

        $str = preg_replace("/,硬座\:--,/","",$str);

        $str = preg_replace("/,其他\:--/","",$str);

        echo "车次:{$v[1]},发站:{$v[2]},到站:{$v[3]},历时:{$v[4]},<br>{$str}<br>";

    }

 

 

 

http://www.widuu.com/archives/06/682.html

ログイン後にコピー



関連ラベル:
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のおすすめ
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート