// +---------------------------------------------------------------------- // 应用公共文件 function pre($content, $is_die = true) { header('Content-type: text/html; charset=utf-8'); echo '
' . print_r($content, true); $is_die && die(); } /** * 异常处理函数 * @param string $code * @param string $msg */ function json_error_exception($code = '', $msg = '') { $error = config('errorCode.'); $errorCode = isset($error[$code]) ? $code : 10000; $errorMsg = $msg != '' ? (isset($error[$code]) ? $error[$code] . " :" . $msg : $msg) : (isset($error[$code]) ? $error[$code] : "请求错误"); return array('code' => $errorCode, 'msg' => $errorMsg); } /** * 成功Json返回函数 * @param string $code * @param array $data * @param string $msg */ function json_return($code,$data=[],$msg='') { exit(json_encode(['code'=>$code,'data'=>$data,'msg'=>$msg],JSON_UNESCAPED_UNICODE )); } /** * php发送http请求 * @param array $params 相关请求参数 * @param booble $is_json 数据格式,默认false为数组,true为json * @return string */ function _curl(array $params,$is_json=false ) { $_data = $params['data'] ?? null; $url = $params['url']; $defaults = [ CURLOPT_HEADER => 0, CURLOPT_URL => $params['url'], CURLOPT_FRESH_CONNECT => 1, CURLOPT_RETURNTRANSFER => 1, CURLOPT_FORBID_REUSE => 1, CURLOPT_TIMEOUT => 60, CURLOPT_SSL_VERIFYHOST=>2, CURLOPT_SSL_VERIFYPEER=>0, ]; switch ($params['method']) { case 'post': $defaults[CURLOPT_CUSTOMREQUEST] = "POST"; break; case 'get': $defaults[CURLOPT_CUSTOMREQUEST] = "GET"; break; case 'put': $defaults[CURLOPT_CUSTOMREQUEST] = "PUT"; break; case 'delete': $defaults[CURLOPT_CUSTOMREQUEST] = "DELETE"; break; } if ($_data && $params['method']!='get') { if($is_json){ $defaults[CURLOPT_POSTFIELDS] = json_encode($_data); $defaults[CURLOPT_HTTPHEADER] = [ 'Content-Type: application/json', 'Content-Length: ' . strlen(json_encode($_data)) ]; }else{ $defaults[CURLOPT_POSTFIELDS] = $_data; } }elseif($params['method']=='get'){ if(is_array($_data)){ $param = ''; foreach ($_data as $k=>$v){ $param .= $k."=".$v."&"; } $param = rtrim($param ,"&"); if(!strpos($url,"?")){ $url .= "?".$param; }else{ $url .= "&".$param; } } $defaults[CURLOPT_URL] = $url; } $ch = curl_init(); curl_setopt_array($ch, ($defaults)); $result = curl_exec($ch); curl_close($ch); return $result; } /** * 整理菜单住方法 * @param $param * @return array */ function prepareMenu($param) { $param = objToArray($param); $parent = []; //父类 $child = []; //子类 foreach($param as $key=>$vo){ if(0 == $vo['type_id']){ $vo['href'] = '#'; $parent[] = $vo; }else{ $vo['href'] = url($vo['control_name'] .'/'. $vo['action_name']); //跳转地址 $child[] = $vo; } } foreach($parent as $key=>$vo){ foreach($child as $k=>$v){ if($v['type_id'] == $vo['id']){ $parent[$key]['child'][] = $v; } } } unset($child); return $parent; } /** * 统一返回信息 * @param $code * @param $data * @param $msge */ function msg($code, $data, $msg) { return compact('code', 'data', 'msg'); } /** * 整理出tree数据 --- layui tree * @param $pInfo * @param $spread */ function getTree($pInfo, $spread = true) { $res = []; $tree = []; //整理数组 foreach($pInfo as $key=>$vo){ if($spread){ $vo['spread'] = true; //默认展开 } $res[$vo['id']] = $vo; $res[$vo['id']]['children'] = []; } unset($pInfo); //查找子孙 foreach($res as $key=>$vo){ if(0 != $vo['pid']){ $res[$vo['pid']]['children'][] = &$res[$key]; } } //过滤杂质 foreach( $res as $key=>$vo ){ if(0 == $vo['pid']){ $tree[] = $vo; } } unset( $res ); return $tree; } /** * 对象转换成数组 * @param $obj */ function objToArray($obj) { return json_decode(json_encode($obj), true); } /** * 权限检测 * @param $rule */ function authCheck($rule) { $control = explode('/', $rule)['0']; if(in_array($control, ['login', 'index'])){ return true; } if(in_array($rule, cache(session('role_id')))){ return true; } return false; }