common.php 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146
  1. <?php
  2. use think\Db;
  3. /**
  4. * 秒转换为天
  5. */
  6. function get_stay_time($remain_time, $is_hour = 1, $is_minutes = 1)
  7. {
  8. $day = floor($remain_time / (3600*24));
  9. $day = $day > 0 ? $day.'天' : '';
  10. $hour = floor(($remain_time % (3600*24)) / 3600);
  11. $hour = $hour > 0 ? $hour.'小时' : '';
  12. if($is_hour && $is_minutes) {
  13. $minutes = floor((($remain_time % (3600*24)) % 3600) / 60);
  14. $minutes = $minutes > 0 ? $minutes.'分钟' : '';
  15. return $day.$hour.$minutes;
  16. }
  17. if($hour) {
  18. return $day.$hour;
  19. }
  20. return $day;
  21. }
  22. // 获取模板区域
  23. function get_city_area()
  24. {
  25. $field=['id','pid','name'];
  26. $list=Db::name('china_area')->where('pid',0)->field($field)->select();
  27. foreach ($list as $k=>&$v){
  28. $v['children']= Db::name('china_area')->where('pid',$v['id'])->field($field)->select();
  29. }
  30. return $list;
  31. }
  32. function http_curl($url,$type='get',$res='json',$arr=''){
  33. $headers = array();
  34. //根据API的要求,定义相对应的Content-Type
  35. array_push($headers, "Content-Type".":"."application/x-www-form-urlencoded; charset=UTF-8;application/json");
  36. $curl = curl_init();
  37. curl_setopt($curl, CURLOPT_CUSTOMREQUEST, $type);
  38. curl_setopt($curl, CURLOPT_URL, $url);
  39. curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
  40. curl_setopt($curl, CURLOPT_FAILONERROR, false);
  41. curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
  42. curl_setopt($curl, CURLOPT_HEADER, false);
  43. $output = curl_exec($curl);
  44. curl_close($curl);
  45. if($res=='json'){
  46. if($output === false){
  47. //请求失败,返回错误信息
  48. return curl_error($curl);
  49. }else{
  50. //请求成功,返回信息
  51. return json_decode($output,true);
  52. }
  53. }
  54. }
  55. function curl_get($url)
  56. {
  57. $ch = curl_init();
  58. curl_setopt($ch, CURLOPT_URL, $url);
  59. curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  60. $output = curl_exec($ch);
  61. curl_close($ch);
  62. if($output === false){
  63. return curl_error($ch);
  64. }else{
  65. return json_decode($output,true);
  66. }
  67. }
  68. /**
  69.  * 把返回的数据集转换成Tree
  70.  * @param array $list 要转换的数据集
  71.  * @param string $pk 自增字段(栏目id)
  72.  * @param string $pid parent标记字段
  73.  * @return array
  74.  */
  75. function make_tree($list,$pk='id',$pid='pid',$child='children',$root=0){
  76. if(is_object($list)) $list = $list->toArray();
  77. $tree=array();
  78. $packData=array();
  79. foreach ($list as $data) {
  80. $packData[$data[$pk]] = $data;
  81. }
  82. foreach ($packData as $key =>$val){
  83. if($val[$pid]==$root){//代表跟节点
  84. $tree[]=& $packData[$key];
  85. }else{
  86. $packData[$val[$pid]][$child][]=& $packData[$key]; //找到其父类
  87. }
  88. }
  89. return $tree;
  90. }
  91. //判断字段存在并不为空
  92. function isset_full($arr, $key)
  93. {
  94. if (isset($arr[$key]) && !empty($arr[$key])) {
  95. return true;
  96. } else {
  97. return false;
  98. }
  99. }
  100. //判断字段存在并不为空 并且等于验证值
  101. function isset_full_check($arr, $key,$check_val)
  102. {
  103. if (isset($arr[$key]) && !empty($arr[$key]) && $arr[$key] == $check_val) {
  104. return true;
  105. } else {
  106. return false;
  107. }
  108. }
  109. function all_pay_type()
  110. {
  111. return [ '--','微信[H5]','支付宝[H5]','微信[APP]','支付宝[APP]','微信[公众号]' ];
  112. }
  113. /**
  114. * 生成32位随机数
  115. */
  116. function get32Str($length='32'){
  117. $str = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
  118. $len = strlen($str)-1;
  119. $randstr = '';
  120. for ($i=0;$i<$length;$i++) {
  121. $num=mt_rand(0,$len);
  122. $randstr .= $str[$num];
  123. }
  124. return $randstr;
  125. }