hSet('oralcavity_token', $array['id'], $encode_token); $redis->close(); return $encode_token; } catch (\Exception $e) { tojson('10000', $e->getMessage()); } } } if (!function_exists('has_special_str')) { function has_special_str($str) { //$前要加反斜杠 $specialChars = "~·`!!`@@&$##\$¥%^…&*()()—-_==×++[]{}*{}【】、|\\;:;:'\"“”‘’,./<>《》??~,。…"; //特殊符号数组 $specialArr = array(); $len = mb_strlen($specialChars, 'UTF-8'); for ($i = 0; $i < $len; $i++) { $specialArr[] = mb_substr($specialChars, $i, 1, 'UTF-8'); } //待比较字符串数组 $arr = array(); $len = mb_strlen($str, 'UTF-8'); for ($i = 0; $i < $len; $i++) { $arr[] = mb_substr($str, $i, 1, 'UTF-8'); } foreach ($arr as $v) { if (in_array($v, $specialArr)) { return true; } } return false; } } if (!function_exists('uuid')) { function uuid() { $uuid = sprintf( '%04x%04x-%04x-%04x-%04x-%04x%04x%04x', mt_rand(0, 0xffff), mt_rand(0, 0xffff), mt_rand(0, 0xffff), mt_rand(0, 0x0fff) | 0x4000, mt_rand(0, 0x3fff) | 0x8000, mt_rand(0, 0xffff), mt_rand(0, 0xffff), mt_rand(0, 0xffff) ); return $uuid; } } // 应用公共文件 if (!function_exists('tojson')) { function tojson($code = 200, $msg = '', $arr = null) { header('Content-Type:application/json; charset=utf-8'); if ($msg == '') { $msg = __($code); } $array = [ 'code' => (int)$code, 'msg' => $msg, // 'data' => $arr, ]; if ($arr) { $array = array_merge($array, $arr); } echo json_encode($array); die; } } if (!function_exists('__')) { /** * 获取语言变量值 * @param string $name 语言变量名 * @param array $vars 动态变量值 * @param string $lang 语言 * @return mixed */ function __($name, $vars = [], $lang = '') { if (!is_array($vars)) { $vars = func_get_args(); array_shift($vars); $lang = ''; } return \think\facade\Lang::get($name, $vars, $lang); } } //token,获取用户信息 if (!function_exists('getToken')) { function getToken($token) { try { $data = \app\common\model\Jwt::decode($token); $redis = new \app\common\model\Redis100_model(); $res = $redis->hGet('oralcavity_token', $data['id']); if ($res != $token) { $redis->close(); tojson(201, 'token不存在,请重试登录'); } $redis->close(); if (!empty($data)) { return $data; } else { tojson(201, 'token不存在'); } } catch (\Exception $e) { tojson(201, 'token不存在'); } } } if (!function_exists('nosecure')) { function nosecure($method, $nosecure, $function) { \app\common\model\Secure::secure($method, $nosecure, $function); } } if (!function_exists('host')) { function host() { // $host = $_SERVER['REQUEST_SCHEME'] . '://' . $_SERVER['SERVER_ADDR'] . ':' . $_SERVER['SERVER_PORT']; $host = $_SERVER['REQUEST_SCHEME'] . '://' . $_SERVER['HTTP_HOST'] . ':' . $_SERVER['SERVER_PORT']; return $host; } } //验证器以及验签 if (!function_exists('verifysign')) { function verifysign($param, $noSize) { if (!isset($param['sign'])) { nosign($noSize) ? true : tojson(10005); } //验证签名 $no = nosign($noSize); $no ? true : checksign($param); if ($no == false) { unset($param['sign']); } } } //验签 if (!function_exists('checksign')) { function checksign($array) { ksort($array); $string = ''; foreach ($array as $k => $v) { if ($k != 'sign' && $v !== '' && !is_array($v)) { $string .= $k . '=' . $v . '&'; } } $string = trim($string, '&'); if ($string == '') { $string = $string . 'key=' . config('apiconfig.key'); } else { $string = $string . '&key=' . config('apiconfig.key'); } $sign = md5($string); if ($sign != $array['sign']) { tojson('10004'); } return $sign; } } //检查是否签名 if (!function_exists('nosign')) { function nosign($arr) { $action = request()->action(); $arr = is_array($arr) ? $arr : explode(',', $arr); if (!$arr) { return false; } $arr = array_map('strtolower', $arr); // 是否存在 if (in_array(strtolower($action), $arr) || in_array('*', $arr)) { return true; } // 没找到匹配 return false; } }