output->enable_profiler(TRUE); $this->load->model('Air_model'); } //航班查询 public function index() { $depart_city_code = $this->input->get('star'); $arrive_city_code = $this->input->get('dest'); $depart_date = $this->input->get('rDate'); echo $depart_city_code.$arrive_city_code.$depart_date; if (empty($depart_city_code) || empty($arrive_city_code) || empty($depart_date)) { echo '请输入正确的参数'; } else { $depart_city_name = $this->Air_model->get_city_by_code($depart_city_code); $arrive_city_name = $this->Air_model->get_city_by_code($arrive_city_code); redirect("http://flight.elong.com/$depart_city_name-$arrive_city_name/?departdate=$depart_date"); } } //酒店详情页 public function hotel($cityname,$hotelname,$checkIn=false,$checkOut=false) { $cityname=trim($cityname); if (empty($cityname) || empty($hotelname)) { die('请输入正确的参数'); } //格式化城市名和酒店名 $cityname=urldecode($cityname); $hotelname=urldecode($hotelname); $cityname=iconv("GBK", "UTF-8", $cityname); $hotelname=iconv("GBK", "UTF-8", $hotelname); $hotelname=str_replace('(', '(', $hotelname); $hotelname=str_replace(')', ')', $hotelname); //$hotelname=preg_replace("/\(.*\)/", '', $hotelname); //格式化预订日期 ($checkIn==false || strtotime($checkIn)lang->load('hotel_city_info'); $city_info=$this->lang->line('hotel_city_info'); $city_info=$city_info["$cityname"]; $city=strtolower($city_info['CityEName']); $search_str=$city.$city_info['City']; $search_str=str_replace(' ', '', $search_str); //如果是XXX酒店(原XXX酒店)这类名称则把括号里的备注去掉 preg_match("/((.*))/", $hotelname, $backup); $backup=isset($backup[1])? trim($backup[1]):''; if (strpos($backup,'原')===0) { $hotelname=str_replace('('.$backup.')', '', $hotelname); } $new_hotelname=preg_replace("/((.*))/", '', $hotelname); $hotelname=urlencode($hotelname); //获取酒店列表页内容 $data['url']='http://hotels.ctrip.com/hotel/'.$search_str.'/k1'.$hotelname; $filecontents = $this->curl_data($data['url']); //获取酒店详细页和价格列表页的链接 preg_match_all('/

/i', $filecontents, $matches); preg_match('/暂无匹配的酒店数据(或者匹配出错),
请把酒店名提交给梁宇云

跳转到携程官方网站进行查看

'; //die(); } $detail_url='http://hotels.ctrip.com'.$store[1].'/?checkIn='.$checkIn.'&checkOut='.$checkOut; $hotelid=trim(str_replace(array('/hotel/','.html'), '', $store[1])); $price_url="http://hotels.ctrip.com/Domestic/tool/AjaxHotelPriceNew.aspx?type=new&city=".$city_info['City']."&hotel=$hotelid&startDate=$checkIn&depDate=$checkOut&RequestTravelMoney=F&promotion=F&prepay=F&IsCanReserve=F&IsJustConfirm=F&OrderType=desc"; preg_match('/
  • (.*)<\/li>
  • /i', $filecontents, $score); $data['hotel_score']=str_replace('
  • ', '', $score[0]); $data['hotelid']=$hotelid; $data['cityid']=$city_info['City']; $detail=$this->curl_data($detail_url); $preg = "//i"; $detail=preg_replace($preg,"",$detail); if(mb_detect_encoding($detail,"UTF-8, ISO-8859-1, GBK")!="UTF-8" ) { $detail=iconv("gbk","utf-8",$detail); } $length=stripos($detail, '
    load->view('ctrip_hotel',$data); } public function hotel_price_list($cityid,$hotelid,$checkIn=false,$checkOut=false) { //格式化预订日期 $checkIn==false && $checkIn=date('Y-m-d',time()+2*24*60*60); $checkOut==false && $checkOut=date('Y-m-d',time()+3*24*60*60); $checkIn=date('Y-m-d',strtotime($checkIn)); $checkOut=date('Y-m-d',strtotime($checkOut)); //获取价格列表 $price_url="http://hotels.ctrip.com/Domestic/tool/AjaxHotelPriceNew.aspx?type=new&city=$cityid&hotel=$hotelid&startDate=$checkIn&depDate=$checkOut&RequestTravelMoney=F&promotion=F&prepay=F&IsCanReserve=F&IsJustConfirm=F&OrderType=desc"; $price_list=$this->curl_data($price_url); if(mb_detect_encoding($price_list,"UTF-8, ISO-8859-1, GBK")!="UTF-8" ) { $price_list=iconv("gbk","utf-8",$price_list); } echo $price_list; } public function hotel_other_price($hotelid,$checkIn=false,$checkOut=false) { //格式化预订日期 $checkIn==false && $checkIn=date('Y-m-d',time()+2*24*60*60); $checkOut==false && $checkOut=date('Y-m-d',time()+3*24*60*60); $checkIn=date('Y-m-d',strtotime($checkIn)); $checkOut=date('Y-m-d',strtotime($checkOut)); //获取价格列表 $price_url="http://hotels.ctrip.com/domestic/comparepricepanel/loadlist/?hotelId=$hotelid&checkIn=$checkIn&checkOut=$checkOut&returnCash=1"; $html=$this->curl_data($price_url); if(mb_detect_encoding($html,"UTF-8, ISO-8859-1, GBK")!="UTF-8" ) { $html=iconv("gbk","utf-8",$html); } echo $html; } public function curl_data($url) { $ch2 = curl_init(); curl_setopt($ch2, CURLOPT_TIMEOUT, 30); curl_setopt($ch2, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch2, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch2, CURLOPT_SSL_VERIFYHOST, false); curl_setopt($ch2, CURLOPT_URL, $url); $filecontents = curl_exec($ch2); curl_close($ch2); return $filecontents; } //携程酒店预订接口测试 public function test() { header("Content-type: text/html; charset=utf-8"); $this->load->library('Ctripapi'); //酒店详情 $city_code='33'; $area_id=''; $hotel_name='桂林漓江大瀑布饭店'; $result=$this->ctripapi->hotel_search($city_code,$area_id,$hotel_name); //酒店价格计划列表 $hotel_code='437337'; $date_start='2015-10-12'; $date_end='2015-10-13'; //$result=$this->ctripapi->hotel_rate_plan($hotel_code,$date_start,$date_end); //酒店价格缓存变化 $hotel_code='437337'; $city_code='33'; //$result=$this->ctripapi->hotel_cache_change($hotel_code,$city_code); //酒店可订性检查 $hotel_code='437337'; $rateplan_code='6925134'; $start_stmp='2015-10-12'; $end_stmp='2015-10-13'; $arrival_stmp='2015-10-12 15:00:00'; $quantity=1; $count=2; //$result=$this->ctripapi->hotel_avail($hotel_code,$rateplan_code,$start_stmp,$end_stmp,$arrival_stmp,$quantity,$count); //酒店订单生成 $data['hotel_code'] = '437337'; //酒店ID $data['rateplan_code'] = '17661'; //价格计划ID $data['unique_id'] = ''; //联盟用户在携程的uniqueid $data['number_of_units'] = '1'; //预订房间数 $data['arrival_time'] = '10:00:00+08:00'; //入住人最早到店时间 $data['late_arrival_time'] = '19:00:00+08:00'; //入住人最早最晚时间 $data['surname'] = array('梁宇云'); //入住人姓名列表 $data['contact_type'] = 'tel'; //确认联系人方式:sms/email/fax/non 手机短消息/电邮/传真/无需确认 $data['contact_name'] = '梁宇云'; //联系人姓名 $data['phone_number'] = '15677370410'; //电话号码 $data['phone_tech_type'] = '1'; //电话类型 $data['contact_email'] = '2355711191@qq.com'; //联系邮箱 $data['start_stmp'] = '2015-10-12T00:00:00+08:00'; //入住开始时间 $data['end_stmp'] = '2015-10-13T00:00:00+08:00'; //入住结束时间 $data['count'] = '2'; //客人数量 $data['per_room'] = 'false'; //客人数量是否对应每间房,false表示所有房间加起来一共住这么多客人 $data['special_text'] = '有窗'; //客人特殊要求 $data['amount_before_tax'] = '660'; //税前订单总价 $data['amount_currency'] = 'CNY'; //货币单位 $data['guarante_code'] = false; //担保标记:1:峰时担保,2全额担保,3超时担保,4一律担保,5手机担保 $data['guarantee_type'] = 'CC/DC/Voucher'; //信用卡担保类型(暂时只支持此类型) $data['card_type'] = ''; //磁卡类型,参考CodeList(CCT) $data['card_number'] = ''; //信用卡号 $data['series_code'] = ''; //串号信用卡背后的3位数字 $data['effective_date'] = ''; //生效日期 $data['expire_date'] = ''; //失效日期 $data['card_holder_name'] = ''; //持卡人姓名 $data['card_holder_idcard'] = ''; //持卡人身份证 $data['guarante_amount'] = '0'; //接收到的担保金额 $data['guarante_currency'] = 'CNY'; //货币单位 $data['cancel_penalty_amount'] = ''; //取消罚金金额,取消罚金数量等于担保金数量 $data['cancel_penalty_currency']= 'CNY'; //取消罚金单位 $data['cancel_penalty_start'] = ''; //最迟的取消时间,在这个时间前取消不需要扣除罚金 $data['cancel_penalty_end'] = ''; //表示在这个时间段取消是需要扣除罚金 //$result=$this->ctripapi->hotel_res($data); var_dump($result); } }