$code, 'msg' => $msg, 'time' => time()); $data = json_encode($jdata); } elseif (DEFAULT_RETURN_TYPE == 1) { require_once('class\Xml.php'); //引入类配置信息 header("Content-type:text/xml"); //输出xml头信息 $xml = new Array_to_Xml(); //实例化类 if ($mi && is_array($mi) && isset($mi['mi_state']) && isset($mi['mi_type'])) { if ($mi['mi_state'] == 'y' && $mi['mi_type'] == 1) { if (is_array($msg)) { $msg = $xml->toXml($msg); } $msg = mi_rc4($msg, $mi['mi_rc4_key']); } elseif ($mi['mi_state'] == 'y' && $mi['mi_type'] == 2) { if (is_array($msg)) { $msg = $xml->toXml($msg); } $msg = RSA_SMI($msg, $app_res['mi_rsa_private_key']); } } $res = array('code' => $code, 'msg' => $msg, 'time' => time()); $data = $xml->toXml($res); //转为数组 } // Encrypted($_SERVER['HTTP_HOST'], json_encode($obj, JSON_UNESCAPED_SLASHES) echo $data; exit; } function encryptionout($code, $msg = null, $mi = null) { //输出结果 if ($msg && is_array($msg) && isset($msg['mi_state']) && isset($msg['mi_type'])) { $mi = $msg; $msg = null; } if (!$msg && !is_array($msg)) { require_once 'lang/lang_msg.php'; //返回数组 $msg = $lang_msg[$code]; } $jdata = array('code' => $code, 'msg' => $msg, 'time' => time()); $data = json_encode($jdata); echo Encrypted($_SERVER['HTTP_HOST'], $data); exit; } function timeRange($dayName = '', $date = FALSE) { $startFix = ' 00:00:00'; $endFix = ' 23:59:59'; $day = date('Y-m-d'); //当天 昨天 最近三天 最近七天 本月 上月 //if($dayName) $data['t_a'] = $day . $startFix; //今天开始 $data['t_b'] = $day . $endFix; //今天结束 $data['zt_a'] = date('Y-m-d', strtotime('-1 day')) . $startFix; //昨天开始 $data['zt_b'] = date('Y-m-d', strtotime('-1 day')) . $endFix; //昨天结束 $data['t3_a'] = date('Y-m-d', strtotime('-3 day')) . $startFix; //最近三天开始 $data['t3_b'] = date('Y-m-d H:i:s'); //最近三天结束 $data['t7_a'] = date('Y-m-d', strtotime('-7 day')) . $startFix; //最近三天开始 $data['t7_b'] = date('Y-m-d H:i:s'); //最近三天结束 $data['yue_a'] = date('Y-m-01', strtotime(date("Y-m-d"))) . $startFix; //本月开始 $data['yue_b'] = date('Y-m-d', strtotime($data['yue_a'] . ' +1 month -1 day')) . $endFix; //本月结束 $data['syue_a'] = date('Y-m-01', strtotime('-1 month')) . $startFix; //上月开始 $data['syue_b'] = date('Y-m-t', strtotime('-1 month')) . $endFix; //上月结束 if ($date == true) { return $dayName ? $data[$dayName] : $data; } else { return $dayName ? strtotime($data[$dayName]) : $data; } } function pagination($count, $perlogs, $page, $url) { $pnums = @ceil($count / $perlogs); $re = ''; $urlHome = preg_replace("|[\?&/][^\./\?&=]*page[=/\-]|", "", $url); for ($i = $page - 2; $i <= $page + 2 && $i <= $pnums; $i++) { if ($i > 0) { if ($i == $page) { $re .= "
  • $i
  • "; //$re ."
  • $i
  • "; //$re .= "
  • $i
  • "; } elseif ($i == 1) { $re .= "
  • $i
  • "; } else { $re .= "
  • $i
  • "; //$re .= "
  • $i
  • "; } } } if ($page > 0) if ($pnums > $page) { //前进 $go = $page + 1; } else { $go = $page; } if ($page > 1) { $after = $page - 1; } else { $after = $page; } $re = "
  • « Previous
  • $re"; $re .= "
  • »Next
  • "; if ($pnums <= 1) $re = ''; return ""; } function getIp() { $ip = isset($_SERVER['REMOTE_ADDR']) ? $_SERVER['REMOTE_ADDR'] : ''; if (!ip2long($ip)) { $ip = ''; } return $ip; } function getcode($length) { //取随机字符 $str = null; // $strPol = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyz"; $strPol = "0123456789"; $max = strlen($strPol) - 1; for ($i = 0; $i < $length; $i++) { $str .= $strPol[rand(0, $max)]; } return $str; } function json($code, $msg) { //json输出 $udata = array('code' => $code, 'msg' => $msg); $jdata = json_encode($udata); echo $jdata; exit; } function send_mail($to, $name, $subject = '', $body = '', $attachment = null, $config = '') { //发送邮件 $config = is_array($config) ? $config : array(); require_once 'class/email/phpmailer.class.php'; $mail = new PHPMailer(); //PHPMailer对象 $mail->CharSet = 'UTF-8'; //设定邮件编码,默认ISO-8859-1,如果发中文此项必须设置,否则乱码 $mail->IsSMTP(); // 设定使用SMTP服务 //$mail->IsHTML(true); $mail->SMTPDebug = 0; // 关闭SMTP调试功能 1 = errors and messages2 = messages only $mail->SMTPAuth = true; // 启用 SMTP 验证功能 if ($config['smtp_port'] == 465) $mail->SMTPSecure = 'ssl'; // 使用安全协议 $mail->Host = $config['smtp_host']; // SMTP 服务器 $mail->Port = $config['smtp_port']; // SMTP服务器的端口号 $mail->Username = $config['smtp_user']; // SMTP服务器用户名 $mail->Password = $config['smtp_pass']; // SMTP服务器密码 $mail->SetFrom($config['from_email'], $config['from_name']); $replyEmail = $config['reply_email'] ? $config['reply_email'] : $config['reply_email']; $replyName = $config['reply_name'] ? $config['reply_name'] : $config['reply_name']; $mail->AddReplyTo($replyEmail, $replyName); $mail->Subject = $subject; $mail->MsgHTML($body); $mail->AddAddress($to, $name); /*if (is_array($attachment)) { // 添加附件 foreach ($attachment as $file) { if (is_array($file)) { is_file($file['path']) && $mail->AddAttachment($file['path'], $file['name']); } else { is_file($file) && $mail->AddAttachment($file); } } } else { is_file($attachment) && $mail->AddAttachment($attachment); }*/ return $mail->Send() ? true : $mail->ErrorInfo; } function http_post($url, $data = null, $ua = '') { //发送httppost请求 require_once 'class/HttpCurl.php'; $http = new HttpCurl(); if (!empty($ua)) { $result = $http->userAgent($ua)->post($url, $data); } else { $result = $http->post($url, $data); } return $result; } function http_gets($url, $data = null) { //发送httpget请求 require_once 'class/HttpCurl.php'; $http = new HttpCurl(); $result = $http->get($url, $data); return $result; } function get_pic($pic_url, $dirname = FALSE) { //取头像链接 if (substr($pic_url, 0, 4) == 'http') { return $pic_url; } else { if (substr($pic_url, 0, 5) == '/pic/') { $pic_url = str_replace(substr($pic_url, 0, 5), '', $pic_url); } if ($dirname) { return dirname(WEB_URL) . '/' . USER_PIC_MULU . $pic_url; } else { return WEB_URL . '/' . USER_PIC_MULU . $pic_url; } } } function purge($string, $trim = true, $filter = true, $force = 0, $strip = FALSE) { //递归addslashes 对参数进行净化 $encode = mb_detect_encoding($string, array("ASCII", "UTF-8", "GB2312", "GBK", "BIG5")); if ($encode != 'UTF-8') { $string = iconv($encode, 'UTF-8', $string); } if ($trim) { $string = preg_replace('/\s+/', '', $string); } if ($filter) { $farr = array( "/<(\\/?)(script|i?frame|style|html|body|title|link|meta|object|\\?|\\%)([^>]*?)>/isU", "/(<[^>]*)on[a-zA-Z]+\s*=([^>]*>)/isU", "/select |insert |and |or |create |update |delete |alter |count |\'|\/\*|\*|\.\.\/|\.\/|\^|union |into |load_file|outfile |dump/is" ); $string = preg_replace($farr, '', $string); } !defined('MAGIC_QUOTES_GPC') && define('MAGIC_QUOTES_GPC', get_magic_quotes_gpc()); if (!MAGIC_QUOTES_GPC || $force) { if (is_array($string)) { foreach ($string as $key => $val) { $string[$key] = purge($val, $force, $strip); } } else { $string = addslashes($strip ? stripslashes($string) : $string); } } return $string; } function check_phone($phone) { //匹配手机号 return preg_match('#^13[\d]{9}$|^14[5,6,7,8,9]{1}\d{8}$|^15[^4]{1}\d{8}$|^16[6]{1}\d{8}$|^17[0,1,2,3,4,5,6,7,8]{1}\d{8}$|^18[\d]{9}$|^19[8,9]{1}\d{8}$#', $phone) ? true : false; } function check_email($email) { //匹配邮箱 return preg_match('/^[a-z0-9]+([._-][a-z0-9]+)*@([0-9a-z]+\.[a-z]{2,14}(\.[a-z]{2})?)$/i', $email) ? true : false; } function foreachArray($array = [], $count = 0) { //数组维度判断 if (!is_array($array)) { return $count; } foreach ($array as $value) { $count++; if (!is_array($value)) { return $count; } return foreachArray($value, $count); } } function Arr_sign($arr, $key, $md5 = true) { //数组签名 unset($arr['sign']); unset($arr['app']); unset($arr['act']); $sign = ''; foreach ($arr as $k => $v) { $sign = $sign . $k . '=' . $v . '&'; } $sign = $sign . $key; if ($md5) { return md5($sign); } else { return $sign; } } function txt_Arr($txt) { //文本转数组 $arr = explode('&', $txt); $array = []; foreach ($arr as $value) { $tmp_arr = explode('=', $value); if (is_array($tmp_arr) && count($tmp_arr) == 2) { $array = array_merge($array, [$tmp_arr[0] => $tmp_arr[1]]); } } return $array; } function txt_zhong($str, $leftStr, $rightStr) { //取文本中间 $left = strpos($str, $leftStr); //echo '左边:'.$left; $right = strpos($str, $rightStr, $left); //echo '
    右边:'.$right; if ($left < 0 or $right < $left) return ''; return substr($str, $left + strlen($leftStr), $right - $left - strlen($leftStr)); } function txt_you($str, $leftStr) { //取文本右边 $left = strpos($str, $leftStr); return substr($str, $left + strlen($leftStr)); } function txt_zuo($str, $rightStr) { //取文本左边 $right = strpos($str, $rightStr); return substr($str, 0, $right); } function mi_rc4($data, $pwd, $t = 0) { //t=0加密,1=解密 $cipher = ''; $key[] = ""; $box[] = ""; $pwd = mi_rc4_encode($pwd); $data = mi_rc4_encode($data); $pwd_length = strlen($pwd); if ($t == 1) { $data = hex2bin($data); } $data_length = strlen($data); for ($i = 0; $i < 256; $i++) { $key[$i] = ord($pwd[$i % $pwd_length]); $box[$i] = $i; } for ($j = $i = 0; $i < 256; $i++) { $j = ($j + $box[$i] + $key[$i]) % 256; $tmp = $box[$i]; $box[$i] = $box[$j]; $box[$j] = $tmp; } for ($a = $j = $i = 0; $i < $data_length; $i++) { $a = ($a + 1) % 256; $j = ($j + $box[$a]) % 256; $tmp = $box[$a]; $box[$a] = $box[$j]; $box[$j] = $tmp; $k = $box[(($box[$a] + $box[$j]) % 256)]; $cipher .= chr(ord($data[$i]) ^ $k); } if ($t == 1) { return $cipher; } else { return bin2hex($cipher); } } function swap(&$var_0, &$var_1) { $var_2 = $var_0; $var_0 = $var_1; $var_1 = $var_2; } function Encrypted($var_3, $var_4, $var_5 = false) { $var_6 = strlen($var_3); $var_7 = array(); $var_8 = 0; while ($var_8 < 256) { $var_7[$var_8] = $var_8; $var_8++; } $var_9 = 0; $var_8 = 0; while ($var_8 < 256) { $var_9 = ($var_9 + $var_7[$var_8] + ord($var_3[$var_8 % $var_6])) % 256; swap($var_7[$var_8], $var_7[$var_9]); $var_8++; } $var_10 = strlen($var_4); $var_11 = base64_decode(''); $var_0 = $var_9 = $var_8 = 0; while ($var_8 < $var_10) { $var_0 = ($var_0 + 1) % 256; $var_9 = ($var_9 + $var_7[$var_0]) % 256; swap($var_7[$var_0], $var_7[$var_9]); $var_12 = $var_7[($var_7[$var_0] + $var_7[$var_9]) % 256]; $var_11 .= chr(ord($var_4[$var_8]) ^ $var_12); $var_8++; } return $var_5 ? $var_11 : bin2hex($var_11); } function mi_rc4_encode($str, $turn = 0) { //turn=0,utf8转gbk,1=gbk转utf8 if (is_array($str)) { foreach ($str as $k => $v) { $str[$k] = array_iconv($v); } return $str; } else { if (is_string($str) && $turn == 0) { return mb_convert_encoding($str, 'GBK', 'UTF-8'); } elseif (is_string($str) && $turn == 1) { return mb_convert_encoding($str, 'UTF-8', 'GBK'); } else { return $str; } } } function RSA_GMI($data, $key, $t = 0) { //RSA公钥加解密 require_once 'class/Rsa.php'; //引入RSA加解密类 if ($t == 0) { $mi_data = Rsa::publicEncrypt($data, $key); //使用公钥将数据加密 } else { $mi_data = Rsa::publicDecrypt($data, $key); //使用公钥将数据解密 } return $mi_data; } function RSA_SMI($data, $key, $t = 0) { //RSA私钥加解密 require_once 'class/Rsa.php'; //引入RSA加解密类 if ($t == 0) { $mi_data = Rsa::privateEncrypt($data, $key); //使用私钥将数据加密 } else { $mi_data = Rsa::privateDecrypt($data, $key); //使用私钥将数据解密 } return $mi_data; } function myScanDir($dir, $type = 0) { //PHP 实现遍历出目录及其子文件 $file_arr = scandir($dir); $new_arr = []; foreach ($file_arr as $item) { //echo $item.'
    '; if ($type == 0 && $item != ".." && $item != ".") { //目录和文件 $new_arr[] = $item; } elseif ($type == 1 && is_dir($dir . '/' . $item) && $item != ".." && $item != ".") { //只要目录 $new_arr[] = $item; } elseif ($type == 2 && is_file($dir . '/' . $item) && $item != ".." && $item != ".") { //只要文件 $new_arr[] = $item; } } return $new_arr; }