php 通过API接口连接12306余票查询
<?php
header("content-type:text/html;charset='utf-8'");
//设置编码
echo "<meta content='text/html; charset=utf-8' http-equiv='Content-Type'>"; //获取API传过来的信息 queryDate 时间 from_station 始发站编号 to_station 到达站编号
$url = "https://kyfw.12306.cn/otn/lcxxcx/query?purpose_codes=ADULT&queryDate=2016-09-31&from_station=GZQ&to_station=GAZ"; //获取内容 内容是json格式
$data = getContent($url);
function getContent($url){//获取网页中输出部分,并返回字符串
$ch = curl_init();
$timeout = 5;
curl_setopt ($ch, CURLOPT_URL, $url);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST,FALSE);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER,FALSE);
curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
$dxycontent = curl_exec($ch);
curl_close($ch);
return $dxycontent;
}
//转码
$data = json_decode($data); //json转码之后是对象, 需要将对象转数组 不然无法进行循环
function object_array($array){
if(is_object($array)){
$array = (array)$array;
}
if(is_array($array)){
foreach($array as $key=>$value){
$array[$key] = object_array($value);
}
}
return $array;
}
//得到数组数据
$data2 = object_array($data);
//稍稍美化一下
echo '<table border="1">';
echo '<tr><td>车次</td><td>始发站/到达站/终点站</td><td>出发时间/到达时间</td><td>历时</td><td>商务座</td><td>特等座</td>
<td>一等座</td><td>二等座</td><td>高级软卧</td><td>软卧</td><td>硬卧</td><td>软座</td><td>硬座</td>
<td>无座</td><td>其他</td><td>备注</td></tr>';
//循环
foreach($data2['data']['datas'] as $k=>$v){
echo '<tr><td>'.$v['station_train_code'].'</td><td>'.$v['start_station_name'].'->'.$v['to_station_name'].'->'.$v['end_station_name'].'</td><td>'.$v['start_time'].' / '.$v['arrive_time'].'</td><td>'.$v['lishi'].'</td><td>'.$v['swz_num'].'</td><td>'.$v['tz_num'].'</td><td>'.$v['zy_num'].'</td><td>'.$v['ze_num'].'</td><td>'.$v['gr_num'].'</td><td>'.$v['rw_num'].'</td><td>'.$v['yw_num'].'</td><td>'.$v['rz_num'].'</td><td>'.$v['yz_num'].'</td><td>'.$v['wz_num'].'</td><td>'.$v['qt_num'].'</td><td>'.$v['note'].'</td></tr>';
}
echo '</table>';
/*
* ["gr_num"]=>高级软卧
* ["qt_num"]=>其他
* ["rw_num"]=> 软卧
* ["rz_num"]=>软座
* ["tz_num"]=>特等座
* ["wz_num"]=>无座
* ["yw_num"]=>硬卧
* ["yz_num"]=>硬座
* ["ze_num"]=>二等座
* ["zy_num"]=> 一等座
* ["swz_num"]=> 商务座
*/
php 通过API接口连接12306余票查询的更多相关文章
- 用webpy实现12306余票查询
效果
- 火车车次查询-余票查询--Api接口
1.来自12306的火车车次数据 使用12306网站的接口,查询余票.此接口采集自 这里. 全国火车站代号字典,下载 . 火车票余票查询 http://dynamic.12306.cn/otsquer ...
- 12306火车票余票查询&Python实现邮件发送
查询余票接口 打开12306官网,并进入余票查询页面,同时开启chrome浏览器F12控制台,以北京到上海为例,搜索2018年10月1日的余票信息,点击搜索按钮,可以在控制台发送了一条GET请求,请求 ...
- 12306微信小程序上线 提供余票查询暂不支持购票
12306微信小程序正式上线,如图所示,目前小程序提供余票查询.时刻表查询和正晚点查询三大功能,用户可在这里随时查看剩余车票以及列车时刻表.而且小程序支持用户添加行程,方便出行. 目前这款小程序还不支 ...
- Python大法之从火车余票查询到打造抢Supreme神器
本文作者:i春秋作家——阿甫哥哥 系列文章专辑:https://bbs.ichunqiu.com/forum.php?mod=collection&action=view&ctid=9 ...
- Java爬取12306余票
一.前言 今年国庆和中秋一起放,虽然很欢快,但是没有票了!!! 于是自己倒腾了一个查询余票的小程序. 二.准备工作 1.先打开12306的页面 2.然后右键检查,点network 3.再点一下1230 ...
- python打造12306余票实时监控
# encoding=utf-8from Tkinter import *from ScrolledText import ScrolledTextimport urllib2import jsoni ...
- PHP 开发API接口 注册,登录,查询用户资料
服务端 <?php require 'conn.php'; header('Content-Type:text/html;charset=utf-8'); $action = $_GET['ac ...
- python3.7之12306抢票脚本实现
悲催的12306,彻底沦为各路抢票软件的服务提供方.元旦伊始,纯粹12306官网及APP抢票,愈一周的时间,仅到手一张凌晨3:55回家的站票.为远离脑残,无奈选择抢票软件,预购年后返沪车票.BTW,研 ...
随机推荐
- 使用 trash-cli 逃出 rm 命令误删除重要文件的阴影
今天是一个难忘的日子,当时本来想清除我们公司网站cms目录下面一些cdn推送网页后残留的垃圾文件,结果在执行rm -rf conten* 时打成了rm -rf conten *结果就悲剧了.cms目录 ...
- Linux下删除命令
linux删除目录很简单 使用rm -rf命令即可.直接rm就可以了,不过要加两个参数-rf 即:rm -rf 目录名字(警告:不作任何提示,且不可恢复,不要说没提醒哦!严重警告!!!)-r 就是向下 ...
- nginx 日志切割
#!/usr/bin/python #-*-coding:UTF-8-*- import time import os logdir='/data/log/nginx' nginxpath='XX/l ...
- 缺少索引导致的服务器和MYSQL故障。
故障现象: 网站访问缓慢. 数据库RDS: CPU满,连接数满,其他值都是空闲. apache服务器:CPU正常,IO正常,流量报警,内存爆满. 解决思路: 一.没遇到过此情况,一脸懵逼. 二.请教大 ...
- STM32堆栈溢出
在使用STM32读取SD Card的文件时,总是会卡死在读函数那里 res = f_read(&fsrc, gbuffer, sizeof(gbuffer)-1, &br); 而且出现 ...
- phpStudy 创建多个站点,绑定域名
默认情况下,phpStudy 的站点根目录是在它自己的WWW目录,比如 F:\phpStudy\WWW,访问的地址可以是 http://127.0.0.1/ 或 http://localhost/ ...
- 配置lamp中的apache
root@komiles-VirtualBox:/etc/apache2/sites-available# service apache2 restart * Restarting web serve ...
- Memcached存储命令 - add
Memcached add 命令用于将 value(数据值) 存储在指定的 key(键) 中. 如果 add 的 key 已经存在,则不会更新数据,之前的值将仍然保持相同,并且您将获得响应 NOT_S ...
- CF449C Jzzhu and Apples (筛素数 数论?
Codeforces Round #257 (Div. 1) C Codeforces Round #257 (Div. 1) E CF450E C. Jzzhu and Apples time li ...
- Highcharts属性中英文参照
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/ ...