123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593 |
- <?php
- use think\Db;
- function requestPost($url , $post_data = array() ){
- // 1. 初始化一个cURL会话
- $ch = curl_init();
- // 2. 设置请求选项, 包括具体的url
- curl_setopt($ch, CURLOPT_URL, $url);
- curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
- // 设置请求为post类型
- curl_setopt($ch, CURLOPT_POST, 1);
- // 添加post数据到请求中
- curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);
- curl_setopt($ch, CURLOPT_HEADER, 0);
- // 3. 执行一个cURL会话并且获取相关回复
- $response = curl_exec($ch);
- // 4. 释放cURL句柄,关闭一个cURL会话
- curl_close($ch);
- return $response;
- }
- function requestGet($url , $msg = ''){
- // 1. 初始化一个cURL会话
- $ch = curl_init();
- //设置选项,包括URL
- curl_setopt($ch, CURLOPT_URL, $url);
- curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
- curl_setopt($ch, CURLOPT_HEADER, 0);
- //执行并获取HTML文档内容
- $response = curl_exec($ch);
- // 4. 释放cURL句柄,关闭一个cURL会话
- curl_close($ch);
- return $response;
- }
- function http_curl($url,$type='get',$res='json',$arr=''){
- $headers = array();
- //根据API的要求,定义相对应的Content-Type
- array_push($headers, "Content-Type".":"."application/x-www-form-urlencoded; charset=UTF-8;application/json");
- $curl = curl_init();
- curl_setopt($curl, CURLOPT_CUSTOMREQUEST, $type);
- curl_setopt($curl, CURLOPT_URL, $url);
- curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
- curl_setopt($curl, CURLOPT_FAILONERROR, false);
- curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
- curl_setopt($curl, CURLOPT_HEADER, false);
- $output = curl_exec($curl);
- curl_close($curl);
- if($res=='json'){
- if($output === false){
- //请求失败,返回错误信息
- return curl_error($curl);
- }else{
- //请求成功,返回信息
- return json_decode($output,true);
- }
- }
- }
- function curl_get($url)
- {
- $ch = curl_init();
- curl_setopt($ch, CURLOPT_URL, $url);
- curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
- $output = curl_exec($ch);
- curl_close($ch);
- if($output === false){
- return curl_error($ch);
- }else{
- return json_decode($output,true);
- }
- }
- // 获取模板区域
- function get_city_area()
- {
- $field=['id','pid','name'];
- $list=Db::name('china_area')->where('pid',0)->field($field)->select();
- foreach ($list as $k=>&$v){
- $v['children']= Db::name('china_area')->where('pid',$v['id'])->field($field)->select();
- }
- return $list;
- }
- //判断字段存在并不为空
- function isset_full($arr, $key)
- {
- if (isset($arr[$key]) && !empty($arr[$key])) {
- return true;
- } else {
- return false;
- }
- }
- //判断字段存在并不为空 并且等于验证值
- function isset_full_check($arr, $key,$check_val)
- {
- if (isset($arr[$key]) && !empty($arr[$key]) && $arr[$key] == $check_val) {
- return true;
- } else {
- return false;
- }
- }
- /**
- * 把返回的数据集转换成Tree
- * @param array $list 要转换的数据集
- * @param string $pk 自增字段(栏目id)
- * @param string $pid parent标记字段
- * @return array
- */
- function make_tree($list,$pk='id',$pid='pid',$child='children',$root=0){
- if(is_object($list)) $list = $list->toArray();
- $tree=array();
- $packData=array();
- foreach ($list as $data) {
- $packData[$data[$pk]] = $data;
- }
- foreach ($packData as $key =>$val){
- if($val[$pid]==$root){//代表跟节点
- $tree[]=& $packData[$key];
- }else{
- $packData[$val[$pid]][$child][]=& $packData[$key]; //找到其父类
- }
- }
- return $tree;
- }
- /**
- * 用于测试打印数组数据
- **/
- function p($arr)
- {
- header('content-type:text/html;charset=utf-8');
- echo '<pre>';
- print_r($arr);
- echo '</pre>';
- }
- /**
- * 返回JSON统一格式
- *
- * @param int $code 返回状态
- * @param string $msg 返回提示信息
- * @param array $data 返回对象
- * @return array
- */
- function V($code, $msg, $data = array())
- {
- return array('code' => $code, 'msg' => $msg, 'data' => $data);
- }
- /**
- * 格式化表格导入的时间为php时间
- **/
- function excel_time_conversion($data){
- // excel软件中的日期是从 1900-01-01 开始计算的
- //但是php 是从 1970-01-01开始计算的。
- //这两者间有一个天数差 25569
- $d = 25569; // excel和php之间相差的时间
- $t = 24 * 60 * 60; // 一天24小时
- return gmdate('Y-m-d', ($data - $d) *$t);
- }
- /**
- * @desc 时间生成
- * @param $type 1、本日 2、本周 3、本月 4、本年 5、上个月 6、指定月份
- * @return array
- */
- function mk_time($type,$date){
- switch($type){
- case 1://本日
- $start = mktime(0,0,0,date('m'), date('d'), date('Y'));
- $end = mktime(23,59,59,date('m'),date('d'),date('Y'));
- break;
- case 2://本周
- $date_w = date('w');
- if($date_w == 0) $date_w = 7;
- $start = mktime(0,0,0,date('m'),date('d')-$date_w+1,date('Y'));
- $end = mktime(23,59,59,date('m'),date('d')-$date_w+7,date('Y'));
- break;
- case 3://本月
- $start = mktime(0,0,0,date('m'),1,date('Y'));
- $end = mktime(23,59,59,date('m'),date('t'),date('Y'));
- break;
- case 4://本年
- $start = mktime(0,0,0,1,1,date('Y'));
- $end = mktime(0,0,0,12,31,date('Y'));
- break;
- case 5://上个月
- $start = strtotime(date('Y-m-01 00:00:00',strtotime('-1 month')));
- $end = strtotime(date("Y-m-d 23:59:59", strtotime(-date('d').'day')));
- break;
- case 6://指定月份
- $y = $date[0];
- $m = $date[1];
- $d = date('t', strtotime($y.'-'.$m));
- $start = strtotime($y.'-'.$m);
- $end = mktime(23,59,59,$m,$d,$y);
- break;
- default:
- $t = mk_time(1,[]);
- $start = $t['start'];
- $end = $t['end'];
- break;
- }
- return array('start' => $start, 'end' => $end);
- }
- /**
- * 生成log文件
- * @param $dir
- * @param $content
- */
- function user_log($dir,$content){
- $log_dir=dirname($_SERVER['DOCUMENT_ROOT']).'/runtime/'.$dir;
- if(!is_dir($log_dir)){
- mkdir($log_dir,0777,true);
- }
- $filename=date('Y-m-d').'.log';
- if(is_array($content)){
- $content=json_encode($content,JSON_UNESCAPED_UNICODE);
- }
- file_put_contents($log_dir.'/'.$filename,date('Y-m-d H:i:s ').$content.PHP_EOL,FILE_APPEND);
- }
- /**
- * 获取订单号
- **/
- function get_order_sn($user_id)
- {
- $rand = $user_id < 9999 ? mt_rand(100000, 99999999) : mt_rand(100, 99999);
- $order_sn = date('Yhis') . $rand;
- $id = str_pad($user_id, (24 - strlen($order_sn)), '0', STR_PAD_BOTH);
- return $order_sn . $id;
- }
- /**
- * +----------------------------------------------------------
- * 生成随机字符串
- * +----------------------------------------------------------
- * @param int $length 要生成的随机字符串长度
- * @param string $type 随机码类型:0,数字+大小写字母;1,数字;2,小写字母;3,大写字母;4,特殊字符;-1,数字+大小写字母+特殊字符
- * +----------------------------------------------------------
- * @return string
- * +----------------------------------------------------------
- */
- function randCode($length = 5, $type = 0)
- {
- $arr = array(1 => "0123456789", 2 => "abcdefghijklmnopqrstuvwxyz", 3 => "ABCDEFGHIJKLMNOPQRSTUVWXYZ", 4 => "~@#$%^&*(){}[]|");
- if ($type == 0) {
- array_pop($arr);
- $string = implode("", $arr);
- } elseif ($type == "-1") {
- $string = implode("", $arr);
- } else {
- $string = $arr[$type];
- }
- $count = strlen($string) - 1;
- $code = '';
- for ($i = 0; $i < $length; $i++) {
- $code .= $string[rand(0, $count)];
- }
- return $code;
- }
- /**
- * 生成随机昵称/用户名
- **/
- function generate()
- {
- $tou = array('快乐', '冷静', '醉熏', '潇洒', '糊涂', '积极', '冷酷', '深情', '粗暴', '温柔', '可爱', '愉快', '义气', '认真', '威武', '帅气', '传统', '漂亮', '自然', '专一', '听话', '昏睡', '狂野', '等待', '搞怪', '幽默', '魁梧', '活泼', '开心', '高兴', '超帅', '留胡子', '坦率', '直率', '轻松', '痴情', '完美', '精明', '无聊', '有魅力', '丰富', '繁荣', '饱满', '炙热', '暴躁', '碧蓝', '俊逸', '英勇', '健忘', '故意', '无心', '土豪', '朴实', '兴奋', '幸福', '淡定', '不安', '阔达', '孤独', '独特', '疯狂', '时尚', '落后', '风趣', '忧伤', '大胆', '爱笑', '矮小', '健康', '合适', '玩命', '沉默', '斯文', '香蕉', '苹果', '鲤鱼', '鳗鱼', '任性', '细心', '粗心', '大意', '甜甜', '酷酷', '健壮', '英俊', '霸气', '阳光', '默默', '大力', '孝顺', '忧虑', '着急', '紧张', '善良', '凶狠', '害怕', '重要', '危机', '欢喜', '欣慰', '满意', '跳跃', '诚心', '称心', '如意', '怡然', '娇气', '无奈', '无语', '激动', '愤怒', '美好', '感动', '激情', '激昂', '震动', '虚拟', '超级', '寒冷', '精明', '明理', '犹豫', '忧郁', '寂寞', '奋斗', '勤奋', '现代', '过时', '稳重', '热情', '含蓄', '开放', '无辜', '多情', '纯真', '拉长', '热心', '从容', '体贴', '风中', '曾经', '追寻', '儒雅', '优雅', '开朗', '外向', '内向', '清爽', '文艺', '长情', '平常', '单身', '伶俐', '高大', '懦弱', '柔弱', '爱笑', '乐观', '耍酷', '酷炫', '神勇', '年轻', '唠叨', '瘦瘦', '无情', '包容', '顺心', '畅快', '舒适', '靓丽', '负责', '背后', '简单', '谦让', '彩色', '缥缈', '欢呼', '生动', '复杂', '慈祥', '仁爱', '魔幻', '虚幻', '淡然', '受伤', '雪白', '高高', '糟糕', '顺利', '闪闪', '羞涩', '缓慢', '迅速', '优秀', '聪明', '含糊', '俏皮', '淡淡', '坚强', '平淡', '欣喜', '能干', '灵巧', '友好', '机智', '机灵', '正直', '谨慎', '俭朴', '殷勤', '虚心', '辛勤', '自觉', '无私', '无限', '踏实', '老实', '现实', '可靠', '务实', '拼搏', '个性', '粗犷', '活力', '成就', '勤劳', '单纯', '落寞', '朴素', '悲凉', '忧心', '洁净', '清秀', '自由', '小巧', '单薄', '贪玩', '刻苦', '干净', '壮观', '和谐', '文静', '调皮', '害羞', '安详', '自信', '端庄', '坚定', '美满', '舒心', '温暖', '专注', '勤恳', '美丽', '腼腆', '优美', '甜美', '甜蜜', '整齐', '动人', '典雅', '尊敬', '舒服', '妩媚', '秀丽', '喜悦', '甜美', '彪壮', '强健', '大方', '俊秀', '聪慧', '迷人', '陶醉', '悦耳', '动听', '明亮', '结实', '魁梧', '标致', '清脆', '敏感', '光亮', '大气', '老迟到', '知性', '冷傲', '呆萌', '野性', '隐形', '笑点低', '微笑', '笨笨', '难过', '沉静', '火星上', '失眠', '安静', '纯情', '要减肥', '迷路', '烂漫', '哭泣', '贤惠', '苗条', '温婉', '发嗲', '会撒娇', '贪玩', '执着', '眯眯眼', '花痴', '想人陪', '眼睛大', '高贵', '傲娇', '心灵美', '爱撒娇', '细腻', '天真', '怕黑', '感性', '飘逸', '怕孤独', '忐忑', '高挑', '傻傻', '冷艳', '爱听歌', '还单身', '怕孤单', '懵懂', '迷你', '鲜艳', '飞快', '真实', '清新', '可耐');
- $do = array("的", "爱", "", "与", "给", "扯", "和", "用", "方", "打", "就", "迎", "向", "踢", "笑", "闻", "有", "等于", "保卫", "演变");
- $wei = array('嚓茶', '凉面', '便当', '毛豆', '花生', '可乐', '灯泡', '哈密瓜', '野狼', '背包', '眼神', '缘分', '雪碧', '人生', '牛排', '蚂蚁', '飞鸟', '灰狼', '斑马', '汉堡', '悟空', '巨人', '绿茶', '自行车', '保温杯', '大碗', '墨镜', '魔镜', '煎饼', '月饼', '月亮', '星星', '芝麻', '啤酒', '玫瑰', '大叔', '小伙', '哈密瓜,数据线', '太阳', '树叶', '芹菜', '黄蜂', '蜜粉', '蜜蜂', '信封', '西装', '外套', '裙子', '大象', '猫咪', '母鸡', '路灯', '蓝天', '白云', '星月', '彩虹', '微笑', '摩托', '板栗', '高山', '大地', '大树', '电灯胆', '砖头', '楼房', '水池', '鸡翅', '蜻蜓', '红牛', '咖啡', '机器猫', '枕头', '大船', '诺言', '钢笔', '刺猬', '天空', '飞机', '大炮', '冬天', '洋葱', '春天', '夏天', '秋天', '冬日', '航空', '毛衣', '豌豆', '黑米', '玉米', '眼睛', '老鼠', '白羊', '帅哥', '美女', '季节', '鲜花', '服饰', '裙子', '白开水', '秀发', '大山', '火车', '汽车', '歌曲', '舞蹈', '老师', '导师', '方盒', '大米', '麦片', '水杯', '水壶', '手套', '鞋子', '自行车', '鼠标', '手机', '电脑', '书本', '奇迹', '身影', '香烟', '夕阳', '台灯', '宝贝', '未来', '皮带', '钥匙', '心锁', '故事', '花瓣', '滑板', '画笔', '画板', '学姐', '店员', '电源', '饼干', '宝马', '过客', '大白', '时光', '石头', '钻石', '河马', '犀牛', '西牛', '绿草', '抽屉', '柜子', '往事', '寒风', '路人', '橘子', '耳机', '鸵鸟', '朋友', '苗条', '铅笔', '钢笔', '硬币', '热狗', '大侠', '御姐', '萝莉', '毛巾', '期待', '盼望', '白昼', '黑夜', '大门', '黑裤', '钢铁侠', '哑铃', '板凳', '枫叶', '荷花', '乌龟', '仙人掌', '衬衫', '大神', '草丛', '早晨', '心情', '茉莉', '流沙', '蜗牛', '战斗机', '冥王星', '猎豹', '棒球', '篮球', '乐曲', '电话', '网络', '世界', '中心', '鱼', '鸡', '狗', '老虎', '鸭子', '雨', '羽毛', '翅膀', '外套', '火', '丝袜', '书包', '钢笔', '冷风', '八宝粥', '烤鸡', '大雁', '音响', '招牌', '胡萝卜', '冰棍', '帽子', '菠萝', '蛋挞', '香水', '泥猴桃', '吐司', '溪流', '黄豆', '樱桃', '小鸽子', '小蝴蝶', '爆米花', '花卷', '小鸭子', '小海豚', '日记本', '小熊猫', '小懒猪', '小懒虫', '荔枝', '镜子', '曲奇', '金针菇', '小松鼠', '小虾米', '酒窝', '紫菜', '金鱼', '柚子', '果汁', '百褶裙', '项链', '帆布鞋', '火龙果', '奇异果', '煎蛋', '唇彩', '小土豆', '高跟鞋', '戒指', '雪糕', '睫毛', '铃铛', '手链', '香氛', '红酒', '月光', '酸奶', '银耳汤', '咖啡豆', '小蜜蜂', '小蚂蚁', '蜡烛', '棉花糖', '向日葵', '水蜜桃', '小蝴蝶', '小刺猬', '小丸子', '指甲油', '康乃馨', '糖豆', '薯片', '口红', '超短裙', '乌冬面', '冰淇淋', '棒棒糖', '长颈鹿', '豆芽', '发箍', '发卡', '发夹', '发带', '铃铛', '小馒头', '小笼包', '小甜瓜', '冬瓜', '香菇', '小兔子', '含羞草', '短靴', '睫毛膏', '小蘑菇', '跳跳糖', '小白菜', '草莓', '柠檬', '月饼', '百合', '纸鹤', '小天鹅', '云朵', '芒果', '面包', '海燕', '小猫咪', '龙猫', '唇膏', '鞋垫', '羊', '黑猫', '白猫', '万宝路', '金毛', '山水', '音响', '尊云', '西安');
- $tou_num = rand(0, 331);
- $do_num = rand(0, 19);
- $wei_num = rand(0, 327);
- $type = rand(0, 1);
- if ($type == 0) {
- $username = $tou[$tou_num] . $do[$do_num] . $wei[$wei_num];
- } else {
- $username = $wei[$wei_num] . $tou[$tou_num];
- }
- return $username ? $username : '';
- }
- /**
- * 生成汉字
- **/
- function getChar(){
- $num = characters('12345',1);
- $b = '';
- for ($i=0; $i<$num; $i++) {
- // 使用chr()函数拼接双字节汉字,前一个chr()为高位字节,后一个为低位字节
- $a = chr(mt_rand(0xB0,0xD0)).chr(mt_rand(0xA1, 0xF0));
- // 转码
- $b .= iconv('GB2312', 'UTF-8', $a);
- }
- return $b;
- }
- /**
- * 随机数
- * $data字符串
- * $number 抽取的个数
- */
- function characters($data,$number){
- $ran = str_shuffle($data);
- return substr($ran, 0, $number);
- }
- /**
- * 友好的时间展示
- * @param int $time 时间戳
- * @param string $format 默认显示格式化方式
- * @return string 返回时间,错误时返回为空字符串
- */
- function diy_friend_date($time, $format='Y-m-d')
- {
- if (!$time)
- return '';
- $nowtime = time();
- if ($time > $nowtime){
- return date($format, $time);
- }
- $Y = date('Y', $time);//年份
- $z = date('z', $time);//当前的第几天
- $nowY = date('Y', $nowtime);
- $nowz = date('z', $nowtime);
- if ($z > $nowz){
- $nowz += 365;
- }
- $diffz = $nowz - $z;//获取差异天
- $diffs = $nowtime - $time;//获取差异秒
- if ($diffz >= 365){
- return ($nowY-$Y).'年前';
- } elseif ($diffz >= 30){
- return floor($diffz / 30).'个月前';
- } elseif ($diffz >= 7){
- return floor($diffz / 7).'个星期前';
- } elseif ($diffz >= 3){
- return $diffz.'天前';
- } elseif ($diffz >= 2){
- return '前天';
- } elseif ($diffz >= 1) {
- return '昨天';
- } elseif ($diffs >= 3600) {
- return floor($diffs / 3600).'小时前';
- } elseif ($diffs >= 300) {
- return floor($diffs / 60).'分钟前';
- } else {//五分钟内
- return '刚刚'.$diffs.'秒';
- }
- }
- /**
- * 根据生日计算年龄
- * @param integer $birthday : 用户生日
- * @param integer $type
- * @return false|string
- */
- function birthday_age($birthday, $type = 0)
- {
- if (!$birthday) {
- if ($type == 1) return '1';
- return '1岁';
- }
- $eighteen_years = 31536000 * 18; // 十八年秒数
- if (time() - $birthday < $eighteen_years) {
- if ($type == 1) return '18';
- return '18岁';
- }
- // 判断如果首位是-的话, 就返回0
- if (substr($birthday, 0, 1) == '-') {
- if ($type == 1) return '0';
- return '0岁';
- }
- $birthday = date("Y-m-d", $birthday);
- list($year, $month, $day) = explode("-", $birthday);
- $new_year = date("Y") - $year;
- $year_diff = $new_year > 0 ? $new_year : 0;
- $month_diff = date("m") - $month;
- $day_diff = date("d") - $day;
- if ($year_diff > 0 && ($day_diff < 0 || $month_diff < 0)) {
- $year_diff--;
- }
- if ($type == 1) return $year_diff;
- return $year_diff . "岁";
- }
- /**
- * 根据计算年龄生日
- * @param array $search
- * @return array
- */
- function age_birthday($search)
- {
- $year = date('Y');
- $month = date('m');
- $day = date('d');
- $max_birth = '';
- $min_birth = '';
- // 用户输入了最小年龄和最大年龄
- if (isset($search['age_min']) && isset($search['age_max'])) {
- $min = min($search['age_min'], $search['age_max']);
- $max = max($search['age_min'], $search['age_max']);
- # 计算最大年龄的最早出生日期
- $max_year = $year - $max - 1;
- $max_birth = date('Y-m-d', strtotime("+1 day", strtotime($max_year . '-' . $month . '-' . $day)));
- # 计算最小年龄的最后出生日期
- $min_year = $year - $min;
- $min_birth = $min_year . '-' . $month . '-' . $day;
- } elseif (isset($search['age_min']) && !isset($search['age_max'])) { //用户只输入了最小年龄
- # 计算最大年龄的最早出生日期
- $max_year = $year - $search['age_min'] - 1;
- $max_birth = date('Y-m-d', strtotime("+1 day", strtotime($max_year . '-' . $month . '-' . $day)));
- # 计算最小年龄的最后出生日期
- $min_year = $year - $search['age_min'];
- $min_birth = $min_year . '-' . $month . '-' . $day;
- } elseif (!isset($search['age_min']) && isset($search['age_max'])) { // 用户只输入了最大年龄
- # 计算最大年龄的最早出生日期
- $max_year = $year - $search['age_max'] - 1;
- $max_birth = date('Y-m-d', strtotime("+1 day", strtotime($max_year . '-' . $month . '-' . $day)));
- # 计算最小年龄的最后出生日期
- $min_year = $year - $search['age_min'];
- $min_birth = $min_year . '-' . $month . '-' . $day;
- }
- return [
- 'min' => $min_birth,
- 'max' => $max_birth,
- ];
- }
- /**
- * 违禁词过滤
- **/
- function forbid_word($str_info)
- {
- $word = config('site.forbid_word');
- if(!$word){
- return true;
- }
- $result = 0;
- // $arr = @explode('|', $word);
- $arr = array_filter(explode('|', $word));
- foreach ($arr as $key => $value) {
- if (strstr($str_info, $value)) {
- $result = 1;
- }
- }
- if ($result == 1) {
- return true;
- }
- return false;
- }
- /**
- * 一维数组转为二维数组
- *
- * @param array $arr
- * @param string $str1
- * @param string $str2
- * @return array
- */
- function get_one_two_array($arr, $str1, $str2)
- {
- $item = [];
- foreach ($arr as $k => $v) {
- $item[] = [
- $str1 => $k,
- $str2 => $v,
- ];
- }
- return $item;
- }
- /**
- * 填充零
- **/
- function filling_method($input,$number){
- $pad_length = strlen((string)$number);
- if($pad_length == 1){
- $pad_length = $pad_length+2;
- }
- if($pad_length == 2){
- $pad_length = $pad_length+1;
- }
- $pad_string = "0";
- return str_pad($input,$pad_length,$pad_string,STR_PAD_LEFT);
- }
- /**
- * 秒转换为天
- *
- * @param integer $remain_time
- */
- function get_stay_time($remain_time, $is_hour = 1, $is_minutes = 1)
- {
- if($remain_time >= 60){
- $day = floor($remain_time / (3600*24));
- $day = $day > 0 ? $day.'天' : '';
- $hour = floor(($remain_time % (3600*24)) / 3600);
- $hour = $hour > 0 ? $hour.'小时' : '';
- if($is_hour && $is_minutes) {
- $minutes = floor((($remain_time % (3600*24)) % 3600) / 60);
- $minutes = $minutes > 0 ? $minutes.'分钟' : '';
- return $day.$hour.$minutes;
- }
- if($hour) {
- return $day.$hour;
- }
- return $day;
- }
- return $remain_time.'秒';
- }
- /**
- * 事务开始
- *
- * @return void
- */
- function db_start()
- {
- Db::startTrans();
- }
- /**
- * 事务提交
- *
- * @return void
- */
- function db_commit()
- {
- Db::commit();
- }
- /**
- * 事务回滚
- *
- * @return void
- */
- function db_rollback()
- {
- Db::rollback();
- }
- /**
- * 抛出响应异常(返回信息)
- *
- * @param string $msg 记录日志的错误信息, 如果returnMsg不配置, 则也为返回错误信息
- * @param integer $type: 1.不记录日志只返回错误信息, 2.事务回退,记录日志并返回错误信息, 3.记录日志并返回错误信息
- * @param Throwable|null $e 异常, 可为null
- * @param string $returnMsg 返回错误信息, 可不配置, 默认为msg
- * @param string $code 错误码
- * @param array $headers 头部信息
- * @param mixed $data 返回数据
- */
- function except($msg = '', $type = 1, $e = null, $returnMsg = '', $code = 0, array $header = [], $data = null)
- {
- $type == 1 && mexcept($msg, $code, $header, $data);
- $type == 2 && db_rollback();
- // 返回信息
- $returnMsg && $msg = $returnMsg;
- mexcept($msg, $code, $header, $data);
- }
- /**
- * 抛出异常(真正)
- *
- * @param string $msg
- * @param integer $code
- * @param array $headers
- * @param mixed $data
- * @return void
- */
- function mexcept($msg = '', $code = 0, $headers = [], $data = null)
- {
- $time = (int)request()->server('REQUEST_TIME') ?: time();
- abort(json(compact('code', 'msg', 'data', 'time'), null, $headers));
- }
|