common.php 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184
  1. <?php
  2. // +----------------------------------------------------------------------
  3. // | ThinkPHP [ WE CAN DO IT JUST THINK ]
  4. // +----------------------------------------------------------------------
  5. // | Copyright (c) 2006-2016 http://thinkphp.cn All rights reserved.
  6. // +----------------------------------------------------------------------
  7. // | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )
  8. // +----------------------------------------------------------------------
  9. // | Author: 流年 <liu21st@gmail.com>
  10. // +----------------------------------------------------------------------
  11. // 应用公共文件
  12. function pre($content, $is_die = true)
  13. {
  14. header('Content-type: text/html; charset=utf-8');
  15. echo '<pre>' . print_r($content, true);
  16. $is_die && die();
  17. }
  18. /**
  19. * 成功Json返回函数
  20. * @param string $code
  21. * @param array $data
  22. * @param string $msg
  23. */
  24. function json_return($code,$data=[],$msg='')
  25. {
  26. exit(json_encode(['code'=>$code,'data'=>$data,'msg'=>$msg],JSON_UNESCAPED_UNICODE ));
  27. }
  28. function json_success($data,$msg='ok'){
  29. exit(json_encode(['code'=>0,'data'=>$data,'msg'=>$msg],JSON_UNESCAPED_UNICODE ));
  30. }
  31. function curl_get_https($url,$data){
  32. if(is_array($data))
  33. {
  34. $param = '';
  35. foreach ($data as $k=>$v){
  36. $param .= $k."=".$v."&";
  37. }
  38. $param = rtrim($param ,"&");
  39. if(!strpos($url,"?")){
  40. $url .= "?".$param;
  41. }
  42. else{
  43. $url .= "&".$param;
  44. }
  45. }
  46. $curl = curl_init(); // 启动一个CURL会话
  47. curl_setopt($curl, CURLOPT_URL, $url);
  48. curl_setopt($curl, CURLOPT_HEADER, 0);
  49. curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
  50. curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); // 跳过证书检查
  51. curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 2); // 从证书中检查SSL加密算法是否存在
  52. $tmpInfo = curl_exec($curl); //返回api的json对象
  53. //关闭URL请求
  54. curl_close($curl);
  55. return $tmpInfo; //返回json对象
  56. }
  57. function http_get($url,$data)
  58. {
  59. return json_decode(curl_get_https($url,$data),true);
  60. }
  61. /**
  62. * 整理菜单住方法
  63. * @param $param
  64. * @return array
  65. */
  66. function prepareMenu($param)
  67. {
  68. $param = objToArray($param);
  69. $parent = []; //父类
  70. $child = []; //子类
  71. foreach($param as $key=>$vo){
  72. if(0 == $vo['type_id']){
  73. $vo['href'] = '#';
  74. $parent[] = $vo;
  75. }else{
  76. $vo['href'] = url($vo['control_name'] .'/'. $vo['action_name']); //跳转地址
  77. $child[] = $vo;
  78. }
  79. }
  80. foreach($parent as $key=>$vo){
  81. foreach($child as $k=>$v){
  82. if($v['type_id'] == $vo['id']){
  83. $parent[$key]['child'][] = $v;
  84. }
  85. }
  86. }
  87. unset($child);
  88. return $parent;
  89. }
  90. /**
  91. * 统一返回信息
  92. * @param $code
  93. * @param $data
  94. * @param $msge
  95. */
  96. function msg($code, $data, $msg)
  97. {
  98. return compact('code', 'data', 'msg');
  99. }
  100. /**
  101. * 整理出tree数据 --- layui tree
  102. * @param $pInfo
  103. * @param $spread
  104. */
  105. function getTree($pInfo, $spread = true)
  106. {
  107. $res = [];
  108. $tree = [];
  109. //整理数组
  110. foreach($pInfo as $key=>$vo){
  111. if($spread){
  112. $vo['spread'] = true; //默认展开
  113. }
  114. $res[$vo['id']] = $vo;
  115. $res[$vo['id']]['children'] = [];
  116. }
  117. unset($pInfo);
  118. //查找子孙
  119. foreach($res as $key=>$vo){
  120. if(0 != $vo['pid']){
  121. $res[$vo['pid']]['children'][] = &$res[$key];
  122. }
  123. }
  124. //过滤杂质
  125. foreach( $res as $key=>$vo ){
  126. if(0 == $vo['pid']){
  127. $tree[] = $vo;
  128. }
  129. }
  130. unset( $res );
  131. return $tree;
  132. }
  133. /**
  134. * 对象转换成数组
  135. * @param $obj
  136. */
  137. function objToArray($obj)
  138. {
  139. return json_decode(json_encode($obj), true);
  140. }
  141. /**
  142. * 权限检测
  143. * @param $rule
  144. */
  145. function authCheck($rule)
  146. {
  147. $control = explode('/', $rule)['0'];
  148. if(in_array($control, ['login', 'index'])){
  149. return true;
  150. }
  151. if(in_array($rule, cache(session('role_id')))){
  152. return true;
  153. }
  154. return false;
  155. }