| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321 | 
							- <?php
 
- /**
 
-  * 常用自定义函数库
 
-  */
 
- use think\Response;
 
- use Ramsey\Uuid\Uuid as CreateUuid;
 
- use think\facade\Request;
 
- if (!function_exists('enjson')) {
 
-     /**
 
-      * 接口参数返回
 
-      * @param mixed   $var  返回的数据
 
-      * @param string  $msg  返回提示语,如果是数组就自动代替未返回的参数
 
-      * @param integer $code 状态码 200
 
-      * @return \think\response\Json
 
-      */
 
-     function enjson($code = 200,$msg = '',$var = [],$type = 'json'){
 
-         switch ($code) {
 
-             case 200:
 
-                 $error = '成功';
 
-                 break;
 
-             case 401:
 
-                 $error = '未授权';
 
-                 break;
 
-             case 403:
 
-                 $error = '没有权限';
 
-                 break;
 
-             default:
 
-                 $error = '失败';
 
-                 break;
 
-         }
 
-         if(is_array($msg) || is_object($msg)){
 
-             $var = $msg;
 
-             $data['msg'] = $error;
 
-         }else{
 
-             $data['msg'] = empty($msg) ? $error : $msg;
 
-         }
 
-         if(isset($var['url'])){
 
-             $data['url'] = $var['url'];
 
-             unset($var['url']);
 
-         }
 
-         $data['code'] = $code;
 
-         $data['data'] = $var;
 
-         if($type == 'array'){
 
-             return $data;
 
-         }
 
-         return Response::create($data,$type);
 
-     }
 
- }
 
- if (!function_exists('code')) {
 
-     /**
 
-      * 友好的调试打印方法
 
-      * @param $var
 
-      */
 
-     function code($var, $exit = true)
 
-     {
 
-         $output = print_r($var, true);
 
-         $output = "<pre>" . htmlspecialchars($output, ENT_QUOTES)."</pre>";
 
-         echo $output;
 
-         if ($exit) {
 
-             exit();
 
-         }
 
-     }
 
- }
 
- if (!function_exists('dehtml')) {
 
-     /**
 
-      * 把HTML实体转换为HTML可视标签
 
-      */
 
-     function dehtml($str)
 
-     {
 
-         return htmlspecialchars_decode($str);
 
-     }
 
- }
 
- if (!function_exists('is_wechat')) {
 
-     /**
 
-      * 判断是否在微信中打开
 
-      * @return boolean
 
-      */
 
-     function is_wechat()
 
-     {
 
-         if (strpos($_SERVER['HTTP_USER_AGENT'], 'MicroMessenger') !== false) {
 
-             return true;
 
-         }
 
-         return false;
 
-     }
 
- }
 
- if (!function_exists('en_phone')) {
 
-     /**
 
-       * 隐藏手机号中间四位
 
-       * @param [type] $phone
 
-       * @return 从第三个字符隐藏4个字符
 
-       */
 
-     function en_phone($phone,$s = 3,$d = 4)
 
-     {
 
-         return substr_replace($phone, '****',$s,$d);
 
-     }
 
- }
 
- if (!function_exists('money')) {
 
-     /**
 
-      * 格式化钱保留小数点
 
-      * @param float $amount
 
-      */
 
-     function money($amount)
 
-     {
 
-         $amount = round($amount,2);
 
-         return sprintf("%01.2f", $amount);
 
-     }
 
- }
 
- if (!function_exists('uuid')) {
 
-     /**
 
-      * 获取唯一ID
 
-      *
 
-      * @param intege $type 类型
 
-      * @param intege $data 要计算的KEY数据
 
-      * @param Boolean $hex 返回的字符是否带-风格符
 
-      * @return void
 
-      */
 
-     function uuid(int $type = 0, $hex = true, $data = null)
 
-     {
 
-         switch ($type) {
 
-         case 1: //基于散列的MD5
 
-             $uuid = CreateUuid::uuid4();
 
-             break;
 
-         case 2: //基于散列的MD5
 
-             $uuid = CreateUuid::uuid3(CreateUuid::NAMESPACE_DNS, $data);
 
-             break;
 
-         case 3: //基于SHA1
 
-             $uuid = CreateUuid::uuid5(CreateUuid::NAMESPACE_DNS, $data);
 
-             break;
 
-         default: //基于时间
 
-             $uuid = CreateUuid::uuid1();
 
-             break;
 
-     }
 
-         return $hex ? $uuid->getHex() : $uuid->toString();
 
-     }
 
- }
 
- if (!function_exists('order_no')) {
 
-     /**
 
-      * 订单号
 
-      */
 
-     function order_no($pre = '')
 
-     {
 
-         return $pre.\uuid\Intuuid::generateParticle();
 
-     }
 
- }
 
- if (!function_exists('getcode')) {
 
-     /**
 
-      * 生成随机数
 
-      * @param int $limit 要生成的随机数长度
 
-      **/
 
-     function getcode($limit=6)
 
-     {
 
-         $rand_array = range(0, 9);
 
-         shuffle($rand_array);   //调用现成的数组随机排列函数
 
-         $str = array_slice($rand_array, 0, $limit);//截取前$limit个
 
-         return implode(null, $str);
 
-     }
 
- }
 
- if (!function_exists('create_code')) {
 
-     /**
 
-      * 生成邀请码
 
-      * @param int $id 要加密换算的ID
 
-      *
 
-     */
 
-     function create_code($id)
 
-     {
 
-         static $source_string = 'E5FCDG3HQA4B1NOPIJ2RSTUV67MWX89KLYZ';
 
-         $num = $id;
 
-         $code = '';
 
-         while ($num > 0) {
 
-             $mod = $num % 35;
 
-             $num = ($num - $mod) / 35;
 
-             $code = $source_string[$mod].$code;
 
-         }
 
-         if (empty($code[3])) {
 
-             $code = str_pad($code, 4, '0', STR_PAD_LEFT);
 
-         }
 
-         return $code;
 
-     }
 
- }
 
- if (!function_exists('de_code')) {
 
-     /**
 
-      * 解密邀请码
 
-     * @param string $code 要解密经过create_code函数加密ID
 
-      */
 
-     function de_code($code)
 
-     {
 
-         static $source_string = 'E5FCDG3HQA4B1NOPIJ2RSTUV67MWX89KLYZ';
 
-         if (strrpos($code, '0') !== false) {
 
-             $code = substr($code, strrpos($code, '0')+1);
 
-         }
 
-         $len = strlen($code);
 
-         $code = strrev($code);
 
-         $num = 0;
 
-         for ($i=0; $i < $len; $i++) {
 
-             $num += strpos($source_string, $code[$i]) * pow(35, $i);
 
-         }
 
-         return $num;
 
-     }
 
- }
 
- if (!function_exists('ids')) {
 
-     /**
 
-      * Ids 参数强制转换为整形
 
-      * @param  string|array $array 要强制转换的参数是字符串1,2,3还是数组[1,2,3]
 
-      * @param  bool $is_ary 返回是字符串1,2,3还是数组[1,2,3]
 
-      * @return string
 
-      */
 
-     function ids($ids,$is_ary = false)
 
-     {
 
-         if(empty($ids)){
 
-             return $is_ary ? [] : '';
 
-         }
 
-         if (is_array($ids)) {
 
-             $ids_ary = $ids;
 
-         } else {
 
-             $ids_ary = explode(',', trim($ids, ','));
 
-         }
 
-         $id_array = [];
 
-         foreach ($ids_ary as $key => $value) {
 
-             $id_array[$key] = abs(intval($value));
 
-         }
 
-         return $is_ary ? $id_array : implode(',', $id_array);
 
-     }
 
- }
 
- if (!function_exists('array_values_unset')) {
 
-     /**
 
-      * 删除数组中指定键值
 
-      * @param  array $arr  要删除的数组
 
-      * @return array
 
-      */
 
-     function array_values_unset(string $values, array $ary)
 
-     {
 
-         $ary_key = array_search($values, $ary);
 
-         if ($ary_key !== false) {
 
-             unset($ary[$ary_key]);
 
-         }
 
-         return $ary;
 
-     }
 
- }
 
- if (!function_exists('sbc2Dbc')) {
 
-     /**
 
-     * 全角转半角
 
-     * @param string $str
 
-     * @return string
 
-     **/
 
-     function sbc2Dbc($str)
 
-     {
 
-         $arr = array(
 
-         '0'=>'0', '1'=>'1', '2'=>'2', '3'=>'3', '4'=>'4','5'=>'5', '6'=>'6', '7'=>'7', '8'=>'8', '9'=>'9',
 
-         'A'=>'A', 'B'=>'B', 'C'=>'C', 'D'=>'D', 'E'=>'E','F'=>'F', 'G'=>'G', 'H'=>'H', 'I'=>'I', 'J'=>'J',
 
-         'K'=>'K', 'L'=>'L', 'M'=>'M', 'N'=>'N', 'O'=>'O','P'=>'P', 'Q'=>'Q', 'R'=>'R', 'S'=>'S', 'T'=>'T',
 
-         'U'=>'U', 'V'=>'V', 'W'=>'W', 'X'=>'X', 'Y'=>'Y','Z'=>'Z', 'a'=>'a', 'b'=>'b', 'c'=>'c', 'd'=>'d',
 
-         'e'=>'e', 'f'=>'f', 'g'=>'g', 'h'=>'h', 'i'=>'i','j'=>'j', 'k'=>'k', 'l'=>'l', 'm'=>'m', 'n'=>'n',
 
-         'o'=>'o', 'p'=>'p', 'q'=>'q', 'r'=>'r', 's'=>'s', 't'=>'t', 'u'=>'u', 'v'=>'v', 'w'=>'w', 'x'=>'x',
 
-         'y'=>'y', 'z'=>'z',
 
-         '('=>'(', ')'=>')', '〔'=>'(', '〕'=>')', '【'=>'[','】'=>']', '〖'=>'[', '〗'=>']', '“'=>'"', '”'=>'"',
 
-         '‘'=>'\'', '’'=>'\'', '{'=>'{', '}'=>'}', '《'=>'<','》'=>'>','%'=>'%', '+'=>'+', '—'=>'-', '-'=>'-',
 
-         '~'=>'~',':'=>':', '。'=>'.', '、'=>',', ','=>',', '、'=>',',  ';'=>';', '?'=>'?', '!'=>'!', '…'=>'-',
 
-         '‖'=>'|', '”'=>'"', '’'=>'`', '‘'=>'`', '|'=>'|', '〃'=>'"',' '=>' ', '×'=>'*', ' ̄'=>'~', '.'=>'.', '*'=>'*',
 
-         '&'=>'&','<'=>'<', '>'=>'>', '$'=>'$', '@'=>'@', '^'=>'^', '_'=>'_', '"'=>'"', '¥'=>'$', '='=>'=',
 
-         '\'=>'\\', '/'=>'/'
 
-     );
 
-         return strtr($str, $arr);
 
-     }
 
- }
 
- if (!function_exists('api')) {
 
-     /**
 
-      * Url生成
 
-      * @param integer $version API版本
 
-      * @param string $url 访问网址
 
-      * @param integer $appid 当前APPID
 
-      * @param integer $id  传入参数
 
-      * @param array $vars  变量
 
-      * @return void
 
-      */
 
-     function api(int $version,$url,int $appid = 0,array $vars = []){
 
-         $id = isset($vars['id']) ? '/'.$vars['id'] : '';
 
-         if(isset($vars['id'])){
 
-             unset($vars['id']);
 
-         }
 
-         $vars = empty($vars) ? '' : '?'.http_build_query($vars);
 
-         $appid = $appid ? '/'.$appid : '';
 
-         $url  = strtolower($url);
 
-         $urls = explode('/',$url);
 
-         if('system' == $urls[0]){
 
-             unset($urls[0]);
 
-             if('miniprogram' == strtolower($urls[1])){
 
-                 unset($urls[1]);
 
-             }
 
-             $urls  = implode('/',$urls);
 
-             return Request::root(true)."/openapi{$appid}/v{$version}/{$urls}";
 
-         }else{
 
-             return Request::root(true)."/api{$appid}/v{$version}/{$url}{$id}.html".$vars;
 
-         }
 
-     }
 
- }
 
- if (!function_exists('urls')) {
 
-     /**
 
-      * Url生成
 
-      * @param integer $version API版本
 
-      * @param string $url 访问网址
 
-      * @param integer $appid 当前APPID
 
-      * @param integer $id  传入参数
 
-      * @param array $vars  变量
 
-      * @return void
 
-      */
 
-     function urls($url,int $appid = 0,array $vars = []){
 
-         $id = isset($vars['id']) ? '/'.$vars['id'] : '';
 
-         if(isset($vars['id'])){
 
-             unset($vars['id']);
 
-         }
 
-         $vars  = empty($vars) ? '' : '?'.http_build_query($vars);
 
-         $appid = $appid ? '/'.$appid : '';
 
-         return Request::root(true).'/app'.$appid.'/'.strtolower($url).$id.$vars;
 
-     }
 
- }
 
 
  |