common.php 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191
  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. function getMoneyFormat($value){
  12. $member_price = $value/100;
  13. return sprintf("%.2f", $member_price);
  14. }
  15. // 应用公共文件
  16. function showStatus($status,$str){
  17. $arr = explode(':', $str);
  18. $key = explode(',', $arr[1]);
  19. $name = explode(',', $arr[0]);
  20. foreach($name as $k=>$v){
  21. $res[$key[$k]] = $v;
  22. }
  23. if($status!=='' && isset($res[$status])){
  24. echo $res[$status];
  25. }
  26. }
  27. // 应用公共文件
  28. function showStatus1($status,$str){
  29. $arr = explode(':', $str);
  30. $key = explode(',', $arr[1]);
  31. $name = explode(',', $arr[0]);
  32. foreach($name as $k=>$v){
  33. $res[$key[$k]] = $v;
  34. }
  35. if($status!=='' && isset($res[$status])){
  36. return $res[$status];
  37. }
  38. }
  39. /**
  40. * 数组合并
  41. * @param $arr
  42. * @param $key
  43. * @return array
  44. */
  45. function array_group_by($arr, $key)
  46. {
  47. $grouped = [];
  48. foreach ($arr as $value) {
  49. $grouped[$value[$key]][] = $value;
  50. }
  51. // Recursively build a nested grouping if more parameters are supplied
  52. // Each grouped array value is grouped according to the next sequential key
  53. if (func_num_args() > 2) {
  54. $args = func_get_args();
  55. foreach ($grouped as $key => $value) {
  56. $parms = array_merge([$value], array_slice($args, 2, func_num_args()));
  57. $grouped[$key] = call_user_func_array('array_group_by', $parms);
  58. }
  59. }
  60. return $grouped;
  61. }
  62. //二维数组去重
  63. function remove_duplicate($arr,$key){
  64. $tmp_arr=[];
  65. foreach($arr as $k => $v)
  66. {
  67. if(in_array($v[$key], $tmp_arr))
  68. {
  69. $re = array_search($v[$key], $tmp_arr);
  70. unset($tmp_arr[$re]);
  71. }
  72. $tmp_arr[$k] = $v[$key];
  73. }
  74. foreach($tmp_arr as $k => $v){
  75. if(array_key_exists($k,$arr)){
  76. $tmp[] = $arr[$k];
  77. }
  78. }
  79. return $tmp;
  80. }
  81. /**
  82. * 二维数组求和
  83. * @param $arr 数组
  84. * @param $key 相同key
  85. * @param $sum 求和值
  86. * @return mixed
  87. */
  88. function my_array_sum($arr,$key,$sum){
  89. foreach($arr as $k=>$v){
  90. if(!isset($item[$v[$key]])){
  91. $item[$v[$key]]=$v;
  92. }else{
  93. $item[$v[$key]][$sum]+=$v[$sum];
  94. }
  95. }
  96. return $item;
  97. }
  98. /**
  99. * 二维数组排序
  100. * @param array $list
  101. * @param $value
  102. * @param $sort
  103. * @return array
  104. */
  105. function arraySort($list=[],$value,$sort){
  106. foreach ($list as $item) {
  107. $k[]=$item[$value];
  108. }
  109. if($sort=='asc'){
  110. array_multisort($k,SORT_ASC,$list);
  111. }elseif($sort=='desc'){
  112. array_multisort($k,SORT_DESC,$list);
  113. }
  114. return $list;
  115. }
  116. //是否是手机号码
  117. function is_mobile($mobile){
  118. if(preg_match("/^1[34578]{1}\d{9}$/",$mobile)){
  119. return true;
  120. }else{
  121. return false;
  122. }
  123. }
  124. /**
  125. * 获取文本域中的图片信息
  126. * @param $data
  127. * @param array $types
  128. * @return mixed
  129. */
  130. function getTextAreaImg($data,$types=['gif','png']){
  131. $type='';
  132. foreach ($types as $v){
  133. $type.=".".$v."|";
  134. }
  135. substr($type,-1);
  136. $pattern = "/[img|IMG].*?src=['|\"](.*?(?:[".$type."]))['|\"].*?[\/]?>/";
  137. preg_match_all($pattern,$data,$match);
  138. return $match;
  139. }
  140. /**
  141. * 获取纯文本
  142. * @param $content
  143. * @param $length
  144. * @return bool|string
  145. */
  146. function getTextNoHtml($content,$length){
  147. $content_02 = htmlspecialchars_decode($content);//把一些预定义的 HTML 实体转换为字符
  148. $content_03 = str_replace("&nbsp;","",$content_02);//将空格替换成空
  149. $contents = strip_tags($content_03);//函数剥去字符串中的 HTML、XML 以及 PHP 的标签,获取纯文本内容
  150. $con = mb_substr($contents, 0, $length,"utf-8");//返回字符串中的前100字符串长度的字符
  151. return $con;
  152. }
  153. /**
  154. * 返回最近时间,string
  155. * @param $time
  156. * @return false|string
  157. */
  158. function wordTime($time) {
  159. $time = (int) substr($time, 0, 10);
  160. $int = time() - $time;
  161. $str = '';
  162. if ($int <= 30){
  163. $str = sprintf('刚刚', $int);
  164. }elseif ($int < 60){
  165. $str = sprintf('%d秒前', $int);
  166. }elseif ($int < 3600){
  167. $str = sprintf('%d分钟前', floor($int / 60));
  168. }elseif ($int < 86400){
  169. $str = sprintf('%d小时前', floor($int / 3600));
  170. }elseif ($int < 2592000){
  171. $str = sprintf('%d天前', floor($int / 86400));
  172. }else{
  173. $str = date('m-d H:i', $time);
  174. }
  175. return $str;
  176. }