common.php 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234
  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. /*微信小程序用
  13. * code 成功
  14. * 20210927
  15. * wj
  16. */
  17. function backjson($code, $data)
  18. {
  19. $jsonData = [
  20. 'code' => $code,
  21. 'resultData' => $data,
  22. ];
  23. return json_encode($jsonData, 320);
  24. }
  25. /*app用
  26. * 20210927
  27. * wj
  28. */
  29. function backjson2($code, $msg = "", $data = [])
  30. {
  31. $jsonData = [
  32. 'code' => $code,
  33. 'msg' => $msg,
  34. 'data' => $data,
  35. ];
  36. return json_encode($jsonData, 336);
  37. }
  38. /* 内部使用
  39. * 20210927
  40. * wj
  41. */
  42. function backarr($status, $msg = "", $data = [])
  43. {
  44. $backData = [
  45. 'status' => $status,
  46. 'msg' => $msg,
  47. 'data' => $data,
  48. ];
  49. return $backData;
  50. }
  51. /***
  52. * 获取订单号
  53. * wj
  54. * 20210911
  55. */
  56. function createOrderNo()
  57. {
  58. $ordrNo = date("YmdHis") . rand(0, 1000);
  59. return $ordrNo;
  60. }
  61. /***
  62. * 获取随机字符串
  63. * wj
  64. * 20210911
  65. */
  66. function getRandomStrings($str = "")
  67. {
  68. $str .= time();
  69. return md5($str);
  70. }
  71. /***
  72. * 判断是否为日期
  73. * wj
  74. * 20211013
  75. */
  76. function isDate($date, $foramt)
  77. {
  78. $date1 = $date;
  79. $time = strtotime($date1);
  80. if (!$time) {
  81. return false;
  82. }
  83. $date2 = date($foramt, $time);
  84. return $date1 == $date2;
  85. }
  86. //curl请求
  87. function requestCurl($url, $method = "get", $data = '', $header = [], $second = 10)
  88. {
  89. $method = strtoupper($method);
  90. $method = in_array($method, ['GET', 'POST']) ? $method : 'GET';
  91. $ch = curl_init();
  92. //设置超时
  93. curl_setopt($ch, CURLOPT_TIMEOUT, $second);
  94. curl_setopt($ch, CURLOPT_URL, $url);
  95. curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
  96. //要求结果为字符串且输出到屏幕上
  97. curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  98. curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
  99. curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); //严格校验2
  100. //设置header
  101. curl_setopt($ch, CURLOPT_HEADER, false);
  102. if (!empty($header)) {
  103. curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
  104. }
  105. if ('POST' == $method) {
  106. //$data = json_encode($data, JSON_UNESCAPED_UNICODE);
  107. curl_setopt($ch, CURLOPT_POST, true);
  108. if (is_array($data)) {
  109. curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data, ''));
  110. }
  111. if (is_string($data)) {
  112. curl_setopt($ch, CURLOPT_POSTFIELDS, $data); // Post提交的数据包
  113. }
  114. }
  115. curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); //禁止 cURL 验证对等证书
  116. curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); //是否检测服务器的域名与证书上的是否一致
  117. //运行curl
  118. $data = curl_exec($ch);
  119. if (curl_errno($ch)) { //出错则显示错误信息
  120. $error = curl_error($ch);
  121. curl_close($ch);
  122. return $error;
  123. } else {
  124. curl_close($ch);
  125. return $data;
  126. }
  127. }
  128. function arry_string($data)
  129. {
  130. if (!is_array($data)) {
  131. return false;
  132. }
  133. $usedata = [];
  134. foreach ($data as $key => $value) {
  135. if (!is_string($value) && !is_numeric($value)) {
  136. return false;
  137. }
  138. $usedata[] = $key . '=' . $value;
  139. }
  140. $str = implode('&', $usedata);
  141. return $str;
  142. }
  143. //根据身份证获取性别
  144. function getGenderBySfzid($sfzid)
  145. {
  146. $gender = false;
  147. switch (mb_strlen($sfzid)) {
  148. case 15:
  149. $genderNum = substr($sfzid, 14, 1);
  150. break;
  151. case 18:
  152. $genderNum = substr($sfzid, 16, 1);
  153. break;
  154. }
  155. if (($genderNum % 2) === 0) {
  156. $gender = "女";
  157. } else {
  158. $gender = "男";
  159. }
  160. return $gender;
  161. }
  162. function getGenderByAge($sfzid)
  163. {
  164. $birthday = substr($sfzid, 6, 8);
  165. $bmd = substr($birthday, 4, 4);
  166. $byear = substr($birthday, 0, 4);
  167. $strtoday = date('Ymd');
  168. $md = substr($strtoday, 4, 4);
  169. $year = substr($strtoday, 0, 4);
  170. $age = intval($year) - intval($byear);
  171. if ($md < $bmd) {
  172. $age = $age - 1;
  173. }
  174. return $age;
  175. }
  176. //获取身份证结束时间
  177. function getSfzend($sfzenddate)
  178. {
  179. if (is_numeric($sfzenddate)) {
  180. if (isDate($sfzenddate, "Ymd")) {
  181. $strenddate = $sfzenddate;
  182. $strendmonth = substr($strenddate, 4, 2);
  183. $strendyear = substr($strenddate, 0, 4);
  184. $strendday = substr($strenddate, 6, 2);
  185. $sfzenddate = $strendyear . '-' . $strendmonth . '-' . $strendday;
  186. } else {
  187. $sfzenddate = '2050-12-31';
  188. }
  189. } else {
  190. $sfzenddate = false;
  191. }
  192. return $sfzenddate;
  193. }
  194. //为cp后台请求验证token
  195. function checkToken()
  196. {
  197. $l_w = new app\index\logic\webmanger();
  198. $token = request()->server('HTTP_TOKEN');
  199. $param = ['token' => $token];
  200. $result = $l_w->queryinfobytoken($param);
  201. if (1 != $result['status']) {
  202. $str = backjson2(0, '登录失效', $result['data']);
  203. exit($str);
  204. }
  205. }
  206. //判断是否是手机号
  207. function isMoblid($tel)
  208. {
  209. if (preg_match("/^1[3-9]{1}\d{9}$/", $tel)) {
  210. return true;
  211. } else {
  212. return false;
  213. }
  214. }
  215. //为移动端请求验证token
  216. /*function checkUserinfoToken()
  217. {
  218. $l_w = new app\index\logic\userinfomodel();
  219. $token = request()->server('HTTP_TOKEN');
  220. $param = ['token' => $token];
  221. $result = $l_w->queryinfobytoken($param);
  222. if (1 != $result['status']) {
  223. $str = backjson2(0, '登录失效', $result['data']);
  224. exit($str);
  225. }
  226. }*/