0){ return '有'; }else{ return ''; } } return ''; }else{ if(is_numeric($num)){ if($num == 0){ return '无'; }elseif($num >= 99){ return '有'; }else{ return $num; } }else{ if($num == '--'){ return ''; } } } } function checkNull($info){ if(empty($info)){ return ''; }else{ return $info; } } function checkDateRule($strDate, $jsonDate){ if (!strtotime($strDate)) { return false; } $strDate_t = strtotime($strDate); $strDate = date("Y-m-d", $strDate_t); $dYear = date("Y", $strDate_t); $dMonth = date("m", $strDate_t); $dDay = date("d", $strDate_t); $dWeek = date("w", $strDate_t); //星期的第几天数组(0-6) //单双日 if ($dDay % 2 == 0) { $dSingle = 2; } else { $dSingle = 1; } $jObject = json_decode($jsonDate); $result = false; //先判断排除规则,有一条符合就返回false if (isset($jObject->DateRule->exclusive) ) { $jObject_exclusive = $jObject->DateRule->exclusive; foreach ($jObject_exclusive as $key => $val) { if ($val->dateType=="EveryDay" ) { //每天,这个基本不会出现,设置每天排除和关闭没区别 return false; } elseif ($val->dateType=="WeekDay" ) { //按星期 //先判断是否在日期范围内,再判断星期是否对应 $bw_CheckRange = false; //是否需要判断星期几 if ($val->dateRange == "*") { //每天 $bw_CheckRange = true; } else { $dateRange = explode("|", $val->dateRange); //日期范围 if (count($dateRange) == 2) { if ($strDate_t >= strtotime($dateRange[0]) and $strDate_t <= strtotime($dateRange[1])) { $bw_CheckRange = true; //在范围内 } } } if ($bw_CheckRange) { if ($dWeek==0) { $dWeek=7; //星期0为星期天,我们保存的星期天是7 } $weekArr = explode(",", $val->dateData); //星期数据1,2,3,4,5,6,7这种 foreach ($weekArr as $week) { if ($week == $dWeek) { return false; } } } } elseif ($val->dateType == "SelectDay") { //固定日期 if ($val->dateRange=="*") { $SelectDayArr = explode(",", $val->dateData); foreach ($SelectDayArr as $sDay) { if (strtotime($sDay) == $strDate_t) { return false; } } } } elseif ($val->dateType == "RangeDay") { //连续日期 if ($val->dateRange == "*") { $RangeDateArr = explode("|", $val->dateData); if (count($RangeDateArr)==2) { if ($strDate_t >= strtotime($RangeDateArr[0]) and $strDate_t <= strtotime($RangeDateArr[1])) { return false ; //在范围内 } } } } } } //再判断包含规则,有一条符合就为true if (isset($jObject->DateRule->include)) { $jObject_include = $jObject->DateRule->include; foreach ($jObject_include as $key => $val) { if ($val->dateType == "EveryDay") { //每天 return true; } elseif ($val->dateType == "WeekDay") { //按星期 //先判断是否在日期范围内,再判断星期是否对应 $bw_CheckRange = false; //是否需要判断星期几 if ($val->dateRange == "*") { //每天 $bw_CheckRange = true; } else { $dateRange = explode("|", $val->dateRange); //日期范围 if (count($dateRange) == 2) { if ($strDate_t >= strtotime($dateRange[0]) and $strDate_t <= strtotime($dateRange[1])) { $bw_CheckRange = true; //在范围内 } } } if ($bw_CheckRange) { if ($dWeek == 0) { $dWeek = 7; //星期0为星期天,我们保存的星期天是7 } $weekArr = explode(",", $val->dateData); //星期数据1,2,3,4,5,6,7这种 foreach ($weekArr as $week) { if ($week == $dWeek) { return true; } } } } elseif ($val->dateType=="MonthDay") { //每月单双 if ($val->dateRange=="*") { $MonthDayArr = explode(",", rtrim($val->dateData, ',')); //月单双数据m3:2,m4:1 foreach ($MonthDayArr as $MonthKey) { $MonthArr = explode(":", $MonthKey); $Month = str_pad(str_replace("m", "", $MonthArr[0]), 2, "0", STR_PAD_LEFT); //存储的月份补0,好比较 if ($dMonth == $Month) { //月份相同比较 if ($dSingle == $MonthArr[1]) { return true; } } } } } elseif ($val->dateType == "SelectDay") { //固定日期 if ($val->dateRange=="*") { $SelectDayArr = explode(",", $val->dateData); foreach ($SelectDayArr as $sDay) { if (strtotime($sDay) == $strDate_t) { return true; } } } } elseif ($val->dateType == "RangeDay") { //连续日期 if ($val->dateRange == "*") { $RangeDateArr = explode("|", $val->dateData); if (count($RangeDateArr)==2) { if ($strDate_t >= strtotime($RangeDateArr[0]) and $strDate_t <= strtotime($RangeDateArr[1])) { return true ; //在范围内 } } } } } } return $result; } function get_name($seat_code){ if($seat_code){ switch($seat_code){ case 'O' : return 'Second Class Seat'; case 'A8' : return 'Second Class Seat'; case 'A9' : return 'Business Class Seat'; case 'P' : return 'Superior'; case 'M' : return 'First Class Seat'; case 'A7' : return 'First Class Seat'; case 'A6' : return 'Superior Soft Sleeper'; case 'A' : return 'Superior Soft Sleeper'; case '5' : return 'Hard Sleeper'; case 'S' : return 'Soft Sleeper'; case 'A4' : return 'Soft Sleeper'; case 'F' : return 'New Soft Sleeper'; case 'A3' : return 'Hard Sleeper'; case 'A2' : return 'Soft Seat'; case 'A1' : return 'Hard Seat'; case 'Q' : return 'Tour Seat'; case 'H' : return 'Other'; case 'WZ' : return 'Standing-room Only'; case '13' : return 'Standing-room Only'; case 'YDW' : return 'Soft Sleeper'; case 'EDW' : return 'Hard Sleeper'; } } } function get_name_cn($seat_code){ if($seat_code){ switch($seat_code){ case 'O' : return '二等座'; case 'A8' : return '二等座'; case 'A9' : return '商务座'; case 'P' : return '特等座'; case 'M' : return '一等座'; case 'A7' : return '一等座'; case 'A6' : return '高级软卧'; case 'A' : return '高级软卧'; case '5' : return '硬卧'; case 'S' : return '软卧'; case 'A4' : return '软卧'; case 'F' : return '动卧'; case 'A3' : return '硬卧'; case 'A2' : return '软座'; case 'A1' : return '硬座'; case 'Q' : return '观光座'; case 'H' : return '其它'; case 'WZ' : return '无座'; case '13' : return '无座'; case 'YDW' : return '一等卧'; case 'EDW' : return '二等卧'; } } } /** * 解密函数 * 算法:des * 加密模式:ecb * 补齐方法:PKCS5 * @param unknown_type $input */ function des_encrypt($data, $key) { $data = pkcs5_pad($data, 8); //确保数据长度是8的倍数并使用PKCS5填充 $iv = "\x01\x02\x03\x04\x05\x06\x07\x08"; //PHP版本的初始化向量,可以自定义 $cipher = mcrypt_module_open(MCRYPT_DES, '', MCRYPT_MODE_ECB, ''); mcrypt_generic_init($cipher, $key, $iv); $encrypted = mcrypt_generic($cipher, $data); mcrypt_generic_deinit($cipher); mcrypt_module_close($cipher); return base64_encode($encrypted); //将密文以base64编码输出 } function des_decrypt($data, $key) { $iv = "\x01\x02\x03\x04\x05\x06\x07\x08"; //PHP版本的初始化向量,可以自定义 $cipher = mcrypt_module_open(MCRYPT_DES, '', MCRYPT_MODE_ECB, ''); mcrypt_generic_init($cipher, $key, $iv); $decrypted = mdecrypt_generic($cipher, base64_decode($data)); //将密文先解码后解密 mcrypt_generic_deinit($cipher); mcrypt_module_close($cipher); return pkcs5_unpad($decrypted); //移除PKCS5填充并输出明文 } function pkcs5_pad($text, $blocksize) { $pad = $blocksize - (strlen($text) % $blocksize); return $text . str_repeat(chr($pad), $pad); } function pkcs5_unpad($text) { $pad = ord($text{strlen($text)-1}); if ($pad > strlen($text)) { return false; } if (strspn($text, chr($pad), strlen($text) - $pad) != $pad) { return false; } return substr($text, 0, -1 * $pad); } ?>