You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

322 lines
12 KiB
PHP

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

<?php
/**
* PHP 301 转向
* @param $url String 转向的URL
*/
function php_301($url = '') {
if (!empty($url)) {
header("Location: " . $url, true, 301);
return;
} else {
log_message('error', '错误的301转向');
echo '404';
}
}
/**
* 获取iis rewrite之前的原始url
*/
function get_origin_url() {
if (isset($_SERVER['HTTP_X_REWRITE_URL'])) {
$origin_url = $_SERVER['HTTP_X_REWRITE_URL'];
} else {
$origin_url = $_SERVER['REQUEST_URI'];
}
return str_replace(array(
'///',
'/index.php',
'/info.php',
'@cache@refresh'), array(
'/',
'/',
'/',
''), urldecode($origin_url));
}
//由下方法ReplaceFieldName修改由于AH需求全英文所以不需替换中文 lzq
function ReplaceFieldName($fields) {
$CI = &get_instance();
$CI->load->model('Orders_model');
$OrderDetailText = '';
foreach ($fields as $key => $value) {
if ((strtolower($key) == 'date_start' || strtolower($key) == 'rdate' || strtolower($key) == 'starting_date' || strtolower($key) == 'youlun_date' || strtolower($key) == 'Arrive_date' || strtolower($key) == 'Depart_date' || strtolower($key) == 'date_end') && !empty($value)) {
$value = date('M/d/Y', strtotime($value));
}
if (is_array($value)) {
$value = implode(',', $value);
}
switch ($key) {
case 'adultsNumber':
$OrderDetailText .= 'Adults' . ':' . $value . "\n";
break;
case 'ChildrenNumber':
$OrderDetailText .= 'Youths' . ':' . $value . "\n";
break;
case 'BabiesNumber':
$OrderDetailText .= 'Children' . ':' . $value . "\n";
break;
case 'cli_tourdays':
$OrderDetailText .= 'Trip Length' . ':' . $value . "\n";
break;
case 'Date_Start':
$OrderDetailText .= 'Date of Arrival' . ':' . $value . "\n";
break;
case 'daysFlexible':
$OrderDetailText .= 'Days Flexible' . ':' . $value . "\n";
break;
case 'flexible_date':
$OrderDetailText .= 'Days Flexible' . ':' . $value . "\n";
break;
case 'hotel':
$OrderDetailText .= 'Hotel' . ':' . $value . "\n";
break;
case 'guiding':
$OrderDetailText .= 'Guiding' . ':' . $value . "\n";
break;
case 'city':
$OrderDetailText .= 'Expected cities' . ':' . $value . "\n";
break;
case 'additionalrequirements':
$OrderDetailText .= 'Additional request' . ':' . $value . "\n";
break;
case 'realname':
$OrderDetailText .= 'Name' . ':' . $value . "\n";
break;
case 'realname':
$OrderDetailText .= 'Name' . ':' . $value . "\n";
break;
case 'gender':
if ($value == 100001) {
$OrderDetailText .= 'Gender' . ':' . 'Man' . "\n";
} else {
$OrderDetailText .= 'Gender' . ':' . 'Woman' . "\n";
}
break;
case 'email':
$OrderDetailText .= 'Email' . ':' . $value . "\n";
break;
case 'PhoneNo':
$OrderDetailText .= 'Telephone' . ':' . $value . "\n";
break;
case 'seriousBooking':
$OrderDetailText .= 'Serious Booking' . ':' . $value . "\n";
break;
default:
if (!empty($value)) {
$OrderDetailText .= $key . ':' . $value . "\n";
}
}
}
if (isset($_SERVER['HTTP_REFERER'])) {
$OrderDetailText .= 'Inquiry page' . $_SERVER['HTTP_REFERER'];
}
switch (check_device()) {
case 'mobile':
$OrderDetailText = 'Devicemobile' . "\n" . $OrderDetailText;
break;
case 'tablet':
$OrderDetailText = 'Devicetablet' . "\n" . $OrderDetailText;
break;
default:
$OrderDetailText = 'Devicecomputer' . "\n" . $OrderDetailText;
}
return $OrderDetailText;
}
function GetChineseFieldName($name) {
$name = strtolower($name);
$name_arr = array(
'realname' => '客人姓名',
'email' => '电子邮箱',
'isfrom' => '订单',
'gender' => '性别',
'100001' => '男',
'100002' => '女',
'100003' => '女',
'title' => '性别',
'nationality' => '国籍',
'destinationcode2' => 'destinationcode2',
'email2' => '备用邮箱',
'otheremail' => '备用邮箱',
'phoneno' => '电话号码',
'phone' => '电话号码',
'additionalrequirements' => '更多需求',
'promocode' => '优惠码',
'newsletter' => '是否预定newsletter',
'cli_no' => '线路代号',
'cli_tourtitle' => '线路名称',
'cli_tourdays' => '线路时长',
'cli_price' => '线路价格',
'guidelanguage' => '导游语种',
'otherguidelanguage' => '备用导游语种',
'tourspecial' => '选中的城市',
'sc' => '选中的城市',
'tourspecial2' => '选择的景点',
'sc2' => '选择的景点',
'flexiblecheck' => '是否是固定行程日期',
'flexiblecheckselect' => '是否是固定行程日期',
'flexible_date_month' => '大致的月份',
'flexible_date_year' => '大致的年份',
'staying_days' => '旅行天数',
'preferredtransport' => '交通方式',
'otherpreferredtransport' => '备选交通方式',
'breakfast' => '早餐选择',
'lunch' => '午餐选择',
'dinner' => '晚餐选择',
'hotelclass' => '酒店星级',
'numberofrooms' => '酒店房间数',
'roomrequirement' => '房间要求',
'roomrequirementselect' => '房间要求',
'starting_date' => '开始时间',
'ending_date' => '结束时间',
'adultenum' => '成人数',
'adultsnumber' => '成人数',
'childnum' => '小孩数',
'childrennumber' => '小孩数',
'babynum' => '婴儿数',
'babiesnumber' => '婴儿数',
'cli_grade' => '线路星级',
'7001' => '四星',
'7002' => '五星',
'7003' => '三星',
'subject' => '订单主题',
'cli_sn' => '线路编号',
'season' => '淡旺季(1旺季2淡季)',
'aperson' => '旅客人数',
'guidestyle' => '导游',
'adult_num' => '成人数',
'child_num' => '儿童数',
'baby_num' => '婴儿数',
'twin_num' => '无效字段',
'share_num' => '无效字段',
'national' => '国籍',
'other_request' => '其他请求',
'shipname' => '游船',
'rdate' => '发船日期',
'days' => '天数',
'ship_sn' => '游船SN',
'room' => '房型',
'no_ajax' => '传值类型(外联不用管这项)',
'cm_number' => '团队类型',
'cm_city' => '目的地',
'sections' => '子项目',
'cm_hotelstar' => '酒店等级',
'cm_guidelang' => '导游语种',
'cm_traffic' => '交通工具',
'cm_guidetime' => '导游服务',
'date_start' => '出发时间',
'Date_Start' => '出发时间',
'date_end' => '结束时间',
'from_guang_jiao_hui' => '广交会订单',
'price' => '预算/价格/等级',
'youlun_name' => '游轮订单-游轮',
'youlun_date' => '游轮订单-出发日期',
'youlun_gangkou' => '游轮订单-港口城市',
'youlun_num' => '游轮订单-人数',
'flexible' => '日期是否可变更',
'post_url' => '订单来源/着陆页',
'q_url' => '订单来源/着陆页',
'allnumber' => '人数',
'passport_text' => '护照',
'birth_text' => '出生日期',
'bloodstyle' => '血型',
'tshirt' => 'T恤尺寸',
'malasong' => '马拉松',
'malasong_else' => '马拉松其他需求',
'malasong_exp' => '马拉松参赛经验',
'guide_old' => '客人年纪',
'OoPdest' => '火车发站-到站',
'OoPDepartureTime' => '火车出发日期',
'business_guide' => '是否需要导游',
'business_attraction' => '景点',
'business_attraction_else' => '其他感兴趣的景点',
'business_request' => '其他需求',
'business_date' => '出发日期',
'business_guidelang' => '导游语种',
'tbgp_date' => '固定发团日期',
'sex_text' => '性别');
if (isset($name_arr[$name])) {
return $name_arr[$name];
} else {
return $name;
}
}
//来源终端 tablet mobile desktop
function check_device() {
if (isset($_SERVER['HTTP_USER_AGENT'])) {
$ua = $_SERVER['HTTP_USER_AGENT'];
} else {
$ua = '';
}
## This credit must stay intact (Unless you have a deal with @lukasmig or frimerlukas@gmail.com
## Made by Lukas Frimer Tholander from Made In Osted Webdesign.
## Price will be $2
$iphone = strstr(strtolower($ua), 'mobile'); //Search for 'mobile' in user-agent (iPhone have that)
$android = strstr(strtolower($ua), 'android'); //Search for 'android' in user-agent
$windowsPhone = strstr(strtolower($ua), 'phone'); //Search for 'phone' in user-agent (Windows Phone uses that)
if (!function_exists('androidTablet')) {
function androidTablet($ua) { //Find out if it is a tablet
if (strstr(strtolower($ua), 'android')) { //Search for android in user-agent
if (!strstr(strtolower($ua), 'mobile')) { //If there is no ''mobile' in user-agent (Android have that on their phones, but not tablets)
return true;
}
}
}
}
$androidTablet = androidTablet($ua); //Do androidTablet function
$ipad = strstr(strtolower($ua), 'ipad'); //Search for iPad in user-agent
if ($androidTablet || $ipad) { //If it's a tablet (iPad / Android)
return 'tablet';
} elseif ($iphone && !$ipad || $android && !$androidTablet || $windowsPhone) { //If it's a phone and NOT a tablet
return 'mobile';
} else { //If it's not a mobile device
return 'desktop';
}
}
//使用正则匹配出价格标签,返回一个价格数组
function price_pregmatch($content) {
$price_array = array();
$temp_array = array();
$result = false;
//#ah-1,lx,25,2016-01-23#
preg_match_all('^#[a-zA-Z0-9,-]+#^', $content, $temp_array);
foreach ($temp_array[0] as $item) {
$placeholder = $item;
$item = str_replace('#', '', $item);
$price_array = explode(',', $item);
$cli_no = !empty($price_array[0]) ? $price_array[0] : false; //线路代号
if (empty($cli_no)) {
continue; //没有设置线路代号则进入下一条
}
$cli_grade = !empty($price_array[1]) ? $price_array[1] : false; //标准7001、豪华7002、经济7003
switch ($cli_grade) {
case 'st':
$cli_grade = '7001';
break;
case 'lx':
$cli_grade = '7002';
break;
case 'ec':
$cli_grade = '7003';
break;
default :$cli_grade = false;
}
$person_size = !empty($price_array[2]) ? $price_array[2] : false; //人等1,2-5,6-9,10
$price_date = !empty($price_array[3]) ? $price_array[3] : false; //价格时间
$result[] = (object) array('placeholder' => $placeholder, 'cli_no' => $cli_no, 'cli_grade' => $cli_grade, 'person_size' => $person_size, 'price_date' => $price_date);
}
return $result;
}