代码描述:基于php的12306火车票查询接口调用代码实例
<!--?php
// +----------------------------------------------------------------------
// | juhephp [ no zuo no die ]
// +----------------------------------------------------------------------
// | copyright (c) 2010-2015 http://juhe.cn all rights reserved.
// +----------------------------------------------------------------------
// | author: juhedata <info@juhe.cn-->
// +----------------------------------------------------------------------
//----------------------------------
// 12306火车票查询调用示例代码 - 聚合数据
// 在线接口文档:http://www.juhe.cn/docs/22
//----------------------------------
header('content-type:text/html;charset=utf-8');
//配置您申请的appkey
$appkey = "*********************";
//************1.站到站查询(含票价)************
$url = "http://apis.juhe.cn/train/s2swithprice";
$params = array(
"start" => "",//出发站
"end" => "",//终点站
"key" => $appkey,//应用appkey(应用详细页查询)
"dtype" => "",//返回数据的格式,xml或json,默认json
);
$paramstring = http_build_query($params);
$content = juhecurl($url,$paramstring);
$result = json_decode($content,true);
if($result){
if($result['error_code']=='0'){
print_r($result);
}else{
echo $result['error_code'].":".$result['reason'];
}
}else{
echo "请求失败";
}
//**************************************************
//************2.12306订票②:车次票价查询************
$url = "http://apis.juhe.cn/train/ticket.price.php";
$params = array(
"train_no" => "",//列次编号,对应12306订票①:查询车次中返回的train_no
"from_station_no" => "",//出发站序号,对应12306订票①:查询车次中返回的from_station_no
"to_station_no" => "",//出发站序号,对应12306订票①:查询车次中返回的to_station_no
"date" => "",//默认当天,格式:2014-12-25
"key" => $appkey,//应用appkey(应用详细页查询)
);
$paramstring = http_build_query($params);
$content = juhecurl($url,$paramstring);
$result = json_decode($content,true);
if($result){
if($result['error_code']=='0'){
print_r($result);
}else{
echo $result['error_code'].":".$result['reason'];
}
}else{
echo "请求失败";
}
//**************************************************
//************3.车次查询************
$url = "http://apis.juhe.cn/train/s";
$params = array(
"name" => "",//车次名称,如:g4
"key" => $appkey,//应用appkey(应用详细页查询)
"dtype" => "",//返回数据的格式,xml或json,默认json
);
$paramstring = http_build_query($params);
$content = juhecurl($url,$paramstring);
$result = json_decode($content,true);
if($result){
if($result['error_code']=='0'){
print_r($result);
}else{
echo $result['error_code'].":".$result['reason'];
}
}else{
echo "请求失败";
}
//**************************************************
//************4.站到站查询************
$url = "http://apis.juhe.cn/train/s2s";
$params = array(
"start" => "",//出发站
"end" => "",//终点站
"traintype" => "",//列车类型,g-高速动车 k-快速 t-空调特快 d-动车组 z-直达特快 q-其他
"key" => $appkey,//应用appkey(应用详细页查询)
"dtype" => "",//返回数据的格式,xml或json,默认json
);
$paramstring = http_build_query($params);
$content = juhecurl($url,$paramstring);
$result = json_decode($content,true);
if($result){
if($result['error_code']=='0'){
print_r($result);
}else{
echo $result['error_code'].":".$result['reason'];
}
}else{
echo "请求失败";
}
//**************************************************
//************5.12306实时余票查询************
$url = "http://apis.juhe.cn/train/yp";
$params = array(
"key" => $appkey,//应用appkey(应用详细页查询)
"dtype" => "",//返回数据的格式,xml或json,默认json
"from" => "",//出发站,如:上海虹桥
"to" => "",// 到达站,如:温州南
"date" => "",//出发日期,默认今日
"tt" => "",//车次类型,默认全部,如:g(高铁)、d(动车)、t(特快)、z(直达)、k(快速)、q(其他)
);
$paramstring = http_build_query($params);
$content = juhecurl($url,$paramstring);
$result = json_decode($content,true);
if($result){
if($result['error_code']=='0'){
print_r($result);
}else{
echo $result['error_code'].":".$result['reason'];
}
}else{
echo "请求失败";
}
//**************************************************
//************6.12306订票①:查询车次************
$url = "http://apis.juhe.cn/train/ticket.cc.php";
$params = array(
"from" => "",//出发站名称:如上海虹桥
"to" => "",//到达站名称:如温州南
"date" => "",//默认当天,格式:2014-07-11
"tt" => "",//车次类型,默认全部,如:g(高铁)、d(动车)、t(特快)、z(直达)、k(快速)、q(其他)
"key" => $appkey,//应用appkey(应用详细页查询)
);
$paramstring = http_build_query($params);
$content = juhecurl($url,$paramstring);
$result = json_decode($content,true);
if($result){
if($result['error_code']=='0'){
print_r($result);
}else{
echo $result['error_code'].":".$result['reason'];
}
}else{
echo "请求失败";
}
//**************************************************
//************7.火车票代售点查询************
$url = "http://apis.juhe.cn/train/dsd";
$params = array(
"province" => "",//省份,如:浙江
"city" => "",//城市,如:温州
"county" => "",//区/县,如:鹿城区
"key" => $appkey,//应用appkey(应用详细页查询)
"dtype" => "",//返回数据的格式,xml或json,默认json
);
$paramstring = http_build_query($params);
$content = juhecurl($url,$paramstring);
$result = json_decode($content,true);
if($result){
if($result['error_code']=='0'){
print_r($result);
}else{
echo $result['error_code'].":".$result['reason'];
}
}else{
echo "请求失败";
}
//**************************************************
//************8.列车站点列表************
$url = "http://apis.juhe.cn/train/station.list.php";
$params = array(
"key" => $appkey,//应用appkey(应用详细页查询)
"dtype" => "",//返回数据的格式,xml或json,默认json
);
$paramstring = http_build_query($params);
$content = juhecurl($url,$paramstring);
$result = json_decode($content,true);
if($result){
if($result['error_code']=='0'){
print_r($result);
}else{
echo $result['error_code'].":".$result['reason'];
}
}else{
echo "请求失败";
}
//**************************************************
/**
* 请求接口返回内容
* @param string $url [请求的url地址]
* @param string $params [请求的参数]
* @param int $ipost [是否采用post形式]
* @return string
*/
function juhecurl($url,$params=false,$ispost=0){
$httpinfo = array();
$ch = curl_init();
curl_setopt( $ch, curlopt_http_version , curl_http_version_1_1 );
curl_setopt( $ch, curlopt_useragent , 'juhedata' );
curl_setopt( $ch, curlopt_connecttimeout , 60 );
curl_setopt( $ch, curlopt_timeout , 60);
curl_setopt( $ch, curlopt_returntransfer , true );
curl_setopt($ch, curlopt_followlocation, true);
if( $ispost )
{
curl_setopt( $ch , curlopt_post , true );
curl_setopt( $ch , curlopt_postfields , $params );
curl_setopt( $ch , curlopt_url , $url );
}
else
{
if($params){
curl_setopt( $ch , curlopt_url , $url.'?'.$params );
}else{
curl_setopt( $ch , curlopt_url , $url);
}
}
$response = curl_exec( $ch );
if ($response === false) {
//echo "curl error: " . curl_error($ch);
return false;
}
$httpcode = curl_getinfo( $ch , curlinfo_http_code );
$httpinfo = array_merge( $httpinfo , curl_getinfo( $ch ) );
curl_close( $ch );
return $response;
}