| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251 | 
							- <?php
 
- // +—————————————————————————————————————————————————————————————————————
 
- // | Created by Yunbao
 
- // +—————————————————————————————————————————————————————————————————————
 
- // | Copyright (c) 2013~2022 http://www.yunbaokj.com All rights reserved.
 
- // +—————————————————————————————————————————————————————————————————————
 
- // | Author: https://gitee.com/yunbaokeji
 
- // +—————————————————————————————————————————————————————————————————————
 
- // | Date: 2022-02-17
 
- // +—————————————————————————————————————————————————————————————————————
 
-     use think\Db;
 
-     use cmf\lib\Storage;
 
-     // 应用公共文件
 
-     error_reporting(E_ALL);
 
-     //ini_set('display_errors','On');
 
-     //error_reporting(E_ERROR | E_WARNING | E_PARSE);
 
-     require_once dirname(__FILE__).'/redis.php';
 
- 	/* 去除NULL 判断空处理 主要针对字符串类型*/
 
- 	function checkNull($checkstr){
 
- 		$checkstr=urldecode($checkstr);
 
- 		$checkstr=htmlspecialchars($checkstr);
 
- 		$checkstr=trim($checkstr);
 
- 		if( strstr($checkstr,'null') || (!$checkstr && $checkstr!=0 ) ){
 
- 			$str='';
 
- 		}else{
 
- 			$str=$checkstr;
 
- 		}
 
- 		return $str;	
 
- 	}
 
- 	
 
- 	/* 去除emoji表情 */
 
- 	function filterEmoji($str){
 
- 		$str = preg_replace_callback(
 
- 			'/./u',
 
- 			function (array $match) {
 
- 				return strlen($match[0]) >= 4 ? '' : $match[0];
 
- 			},
 
- 			$str);
 
- 		return $str;
 
- 	}
 
- 	/* 获取公共配置 */
 
- 	function getConfigPub() {
 
- 		$key='getConfigPub';
 
- 		$config=getcaches($key);
 
- 		if(!$config){
 
- 			$config=Db::name("option")
 
-                     ->field('option_value')
 
-                     ->where("option_name='site_info'")
 
-                     ->find();
 
-             $config=json_decode($config['option_value'],true);
 
-             
 
-             if($config){
 
-                 setcaches($key,$config);
 
-             }
 
-             
 
- 		}
 
-         
 
-         if(isset($config['live_time_coin'])){
 
-             if(is_array($config['live_time_coin'])){
 
-                 
 
-             }else if($config['live_time_coin']){
 
-                 $config['live_time_coin']=preg_split('/,|,/',$config['live_time_coin']);
 
-             }else{
 
-                 $config['live_time_coin']=array();
 
-             }
 
-         }else{
 
-             $config['live_time_coin']=array();
 
-         }
 
-         
 
-         if(isset($config['login_type'])){
 
-             if(is_array($config['login_type'])){
 
-                 
 
-             }else if($config['login_type']){
 
-                 $config['login_type']=preg_split('/,|,/',$config['login_type']);
 
-             }else{
 
-                 $config['login_type']=array();
 
-             }
 
-         }else{
 
-             $config['login_type']=array();
 
-         }
 
-         
 
-         
 
-         if(isset($config['live_type'])){
 
-             if(is_array($config['live_type'])){
 
-                 
 
-             }else if($config['live_type']){
 
-                 $live_type=preg_split('/,|,/',$config['live_type']);
 
-                 foreach($live_type as $k=>$v){
 
-                     $live_type[$k]=preg_split('/;|;/',$v);
 
-                 }
 
-                 $config['live_type']=$live_type;
 
-             }else{
 
-                 $config['live_type']=array();
 
-             }
 
-         }else{
 
-             $config['live_type']=array();
 
-         }
 
-             
 
- 		return 	$config;
 
- 	}	
 
- 	
 
- 	/* 获取私密配置 */
 
- 	function getConfigPri() {
 
- 		$key='getConfigPri';
 
- 		$config=getcaches($key);
 
- 		if(!$config){
 
- 			$config=Db::name("option")
 
-                 ->field('option_value')
 
-                 ->where("option_name='configpri'")
 
-                 ->find();
 
-             $config=json_decode($config['option_value'],true);
 
- 			if($config){
 
-                 setcaches($key,$config);
 
-             }
 
- 			
 
- 		}
 
-         
 
-         
 
- 		return 	$config;
 
- 	}
 
-     
 
- 	/**
 
- 	 * 转化数据库保存的文件路径,为可以访问的url
 
- 	 */
 
- 	function get_upload_path($file){
 
-         if($file==''){
 
-             return $file;
 
-         }
 
- 		if(strpos($file,"http")===0){
 
- 			return $file;
 
- 		}else if(strpos($file,"/")===0){
 
-             $configpub=getConfigPub();
 
- 			$filepath= $configpub['site'].$file;
 
- 			return $filepath;
 
- 		}else{
 
- /*
 
- 			$fileinfo=explode("_",$file);//上传云存储标识:qiniu:七牛云;
 
- 			$storage_type=$fileinfo[0];
 
- 			$start=strlen($storage_type)+1;
 
- 			if($storage_type=='qiniu'){ //七牛云
 
- 				$storage = Storage::instance();
 
- 				$file=substr($file,$start);
 
- 				return html_entity_decode($storage->getImageUrl($file));
 
- 			}else{
 
- 				$style='';
 
- 	            $storage = Storage::instance();
 
- 	            return $storage->getImageUrl($file, $style);
 
- 			}*/
 
-             //minio
 
-             $minio_domain_url = 'http://43.239.167.134:9000/';
 
-             $storage_type = 'minio';
 
-             $start=strlen($storage_type)+1;
 
-             if($storage_type=='minio'){ //七牛云
 
-                 $file=substr($file,$start);
 
-                 return $minio_domain_url.$file;
 
-             }else{
 
-                 $style='';
 
-                 $storage = Storage::instance();
 
-                 return $storage->getImageUrl($file, $style);
 
-             }
 
-             
 
- 		}
 
- 	}
 
-     /*
 
-     单文件云存储
 
-     files  单个文件上传信息(包含键值)   $files['file']=$_FILES["file"]
 
-     type  文件类型 img图片 video视频 music音乐
 
-     */
 
- 	function adminUploadFiles($files=[]){
 
-         // 要上传文件的本地路径
 
-         $filePath = $files['file']['tmp_name'];
 
-         $minio_domain_url = 'http://43.239.167.134:9000/';
 
-         $minio_key = '6kUBnBRda9mes83brwEP';
 
-         $minio_secret = 'AEPLazYp82HSMNlua3OCzXFo8rNxSQjgCdHD3bPT';
 
-         $ext=strtolower(pathinfo($files['file']['name'], PATHINFO_EXTENSION));
 
-         $key = date('Ymd').'/'.uniqid().'.'.$ext;
 
-         /* 存放文件的桶 */
 
-         $bucket = 'live';
 
-         if (!function_exists('Aws\constantly')) {
 
-             require CMF_ROOT . 'sdk/aws/aws-autoloader.php';
 
-         }
 
-         $s3 = new Aws\S3\S3Client([
 
-             'version' => 'latest',
 
-             'region' => 'us-east-1',
 
-             'endpoint' => $minio_domain_url,
 
-             'use_path_style_endpoint' => true,
 
-             'credentials' => [
 
-                 'key' => $minio_key,
 
-                 'secret' => $minio_secret,
 
-             ],
 
-         ]);
 
-         $result = $s3->putObject([
 
-             'Bucket' => $bucket,
 
-             'Key' => $key,
 
-             'Body' => 'this is the body!',
 
-             'SourceFile' => $filePath,
 
-         ]);
 
-         return $bucket.'/'.$key;
 
-     }
 
- 	/* 获取等级 */
 
- 	function getLevelList(){
 
-         $key='level';
 
- 		$level=getcaches($key);
 
- 		if(!$level){
 
- 			$level= Db::name("level")->order("level_up asc")->select();
 
-             if($level){
 
-                 setcaches($key,$level);
 
-             }else{
 
- 				delcache($key);
 
- 			}
 
- 		}
 
-         
 
-         foreach($level as $k=>$v){
 
-             $v['thumb']=get_upload_path($v['thumb']);
 
-             $v['thumb_mark']=get_upload_path($v['thumb_mark']);
 
-             $v['bg']=get_upload_path($v['bg']);                 
 
-             if($v['colour']){
 
-                 $v['colour']='#'.$v['colour'];
 
-             }else{
 
-                 $v['colour']='#ffdd00';
 
-             }
 
-             $level[$k]=$v;
 
-         }
 
-         
 
-         return $level;
 
-     }
 
- 	function getLevel($experience){
 
- 		$level_a=1;
 
- 		$levelid=1;
 
- 		
 
-         $level=getLevelList();
 
- 		foreach($level as $k=>$v){
 
- 			if( $v['level_up']>=$experience){
 
- 				$levelid=$v['levelid'];
 
- 				break;
 
- 			}else{
 
- 				$level_a = $v['levelid'];
 
- 			}
 
- 		}
 
- 		$levelid = $levelid < $level_a ? $level_a:$levelid;
 
- 		
 
- 		return (string)$levelid;
 
- 	}
 
- 	/* 主播等级 */
 
- 	function getLevelAnchorList(){
 
- 		$key='levelanchor';
 
- 		$level=getcaches($key);
 
- 		if(!$level){
 
- 			$level= Db::name("level_anchor")->order("level_up asc")->select();
 
-             if($level){
 
-                 setcaches($key,$level);
 
-             }else{
 
- 				delcache($key);
 
- 			}
 
- 		}
 
-         
 
-         foreach($level as $k=>$v){
 
-             $v['thumb']=get_upload_path($v['thumb']);
 
-             $v['thumb_mark']=get_upload_path($v['thumb_mark']);
 
-             $v['bg']=get_upload_path($v['bg']);
 
-             $level[$k]=$v;
 
-         }
 
-             
 
-         return $level;
 
-     }
 
- 	function getLevelAnchor($experience){
 
- 		$levelid=1;
 
- 		$level_a=1;
 
-         $level=getLevelAnchorList();
 
-         
 
- 		foreach($level as $k=>$v){
 
- 			if( $v['level_up']>=$experience){
 
- 				$levelid=$v['levelid'];
 
- 				break;
 
- 			}else{
 
- 				$level_a = $v['levelid'];
 
- 			}
 
- 		}
 
- 		$levelid = $levelid < $level_a ? $level_a:$levelid;
 
- 		
 
- 		return $levelid;
 
- 	}
 
- 	/* 用户基本信息 */
 
-     function getUserInfo($uid) {
 
-         $where['id']=$uid;
 
-         $info= Db::name("user")->field("id,user_nicename,avatar,avatar_thumb,sex,signature,consumption,votestotal,province,user_status,city,birthday")->where($where)->find();
 
- 		if(!$info){
 
-             $info['id']=$uid;
 
-             $info['user_nicename']='用户不存在';
 
-             $info['avatar']='/default.jpg';
 
-             $info['avatar_thumb']='/default_thumb.jpg';
 
-             $info['sex']='0';
 
-             $info['signature']='';
 
-             $info['consumption']='0';
 
-             $info['votestotal']='0';
 
-             $info['province']='';
 
-             $info['city']='';
 
-             $info['birthday']='';
 
- 			$info['user_status']='1';
 
-         }
 
-         
 
-         if($info){
 
-             $info['avatar']=get_upload_path($info['avatar']);
 
- 			$info['avatar_thumb']=get_upload_path($info['avatar_thumb']);
 
- 			$info['level']=getLevel($info['consumption']);
 
- 			$info['level_anchor']=getLevelAnchor($info['votestotal']);
 
-             
 
-             if($info['birthday']){
 
-                 $info['birthday']=date('Y-m-d',$info['birthday']);   
 
-             }else{
 
-                 $info['birthday']='';
 
-             }
 
-             $token=Db::name("user_token")->where("user_id={$uid}")->value("token");
 
-             $info['token']=$token;
 
-             
 
-         }
 
- 				
 
- 		return 	$info;		
 
-     }	 
 
- 	/*获取收到礼物数量(tsd) 以及送出的礼物数量(tsc) */
 
- 	function getgif($uid){
 
- 		
 
- 		$count=Db::query('select sum(case when touid='.$uid.' then 1 else 0 end) as tsd,sum(case when uid='.$uid.' then 1 else 0 end) as tsc from cmf_user_coinrecord');
 
- 		return 	$count;		
 
- 	}
 
- 	/* 用户信息 含有私密信息 */
 
-    function getUserPrivateInfo($uid) {
 
-        $where['id']=$uid;
 
-         $info= Db::name("user")->field('id,user_login,user_nicename,avatar,avatar_thumb,sex,signature,consumption,votestotal,province,city,coin,votes,birthday,issuper')->where($where)->find();
 
- 		if($info){
 
- 			$info['lighttime']="0";
 
- 			$info['light']=0;
 
- 			$info['level']=getLevel($info['consumption']);
 
- 			$info['level_anchor']=getLevelAnchor($info['votestotal']);
 
- 			$info['avatar']=get_upload_path($info['avatar']);
 
- 			$info['avatar_thumb']=get_upload_path($info['avatar_thumb']);
 
- 			
 
- 		
 
-             
 
-             if($info['birthday']){
 
-                 $info['birthday']=date('Y-m-d',$info['birthday']);   
 
-             }else{
 
-                 $info['birthday']='';
 
-             }
 
-             $token=Db::name("user_token")->where("user_id={$uid}")->value("token");
 
-             $info['token']=$token;
 
- 		}
 
- 		return 	$info;		
 
-     }			
 
- 		
 
- 		/* 用户信息 含有私密信息 */
 
-     function getUserToken($uid) {
 
-         $where['user_id']=$uid;
 
- 		$info= Db::name("user_token")->field('token')->where($where)->find();
 
-         if(!$info){
 
-             return '';
 
-         }
 
- 		return 	$info['token'];		
 
-     }				
 
- 	/*判断token是否过期*/
 
- 	function checkToken($uid,$token){
 
- 		if(!$uid || !$token){
 
-             session('uid',null);		
 
-             session('token',null);
 
-             session('user',null);
 
-             cookie('uid',null);
 
-             cookie('token',null);
 
- 			return 700;	
 
- 		}
 
-         
 
-         $key="token_".$uid;
 
- 		$userinfo=getcaches($key);
 
- 		if(!$userinfo){
 
-             $where['user_id']=$uid;
 
- 			$userinfo=Db::name("user_token")->field('token,expire_time')->where($where)->find();	
 
-             if($userinfo){
 
-                 setcaches($key,$userinfo);
 
-             }else{
 
- 				delcache($key);
 
- 			}
 
- 		}
 
-         
 
- 		if(!$userinfo || $userinfo['token']!=$token || $userinfo['expire_time']<time()){
 
-             session('uid',null);		
 
-             session('token',null);
 
-             session('user',null);
 
-             cookie('uid',null);
 
-             cookie('token',null);
 
- 			return 700;				
 
- 		}else{
 
- 			return 	0;				
 
- 		} 
 
- 	}
 
- 	/*前台个人中心判断是否登录*/
 
- 	function LogIn()
 
- 	{
 
- 		$uid=session("uid");
 
- 		if($uid<=0)
 
- 		{
 
- 			header("Location: /"); 
 
- 			exit;
 
- 		}
 
- 	}
 
- 	
 
- 	/* 过滤关键词 */
 
- 	function filterField($field){
 
- 		$configpri=getConfigPri();
 
- 		
 
- 		$sensitive_field=$configpri['sensitive_field'];
 
- 		
 
- 		$sensitive=explode(",",$sensitive_field);
 
- 		$replace=array();
 
- 		$preg=array();
 
- 		foreach($sensitive as $k=>$v){
 
- 			if($v){
 
- 				$re='';
 
- 				$num=mb_strlen($v);
 
- 				for($i=0;$i<$num;$i++){
 
- 					$re.='*';
 
- 				}
 
- 				$replace[$k]=$re;
 
- 				$preg[$k]='/'.$v.'/';
 
- 			}else{
 
- 				unset($sensitive[$k]);
 
- 			}
 
- 		}
 
- 		
 
- 		return preg_replace($preg,$replace,$field);
 
- 	}
 
- 	
 
- 	/* 检验手机号 */
 
- 	function checkMobile($mobile){
 
- 		$ismobile = preg_match("/^1[3|4|5|6|7|8|9]\d{9}$/",$mobile);
 
- 		if($ismobile){
 
- 			return 1;
 
- 		}else{
 
- 			return 0;
 
- 		}
 
- 	}
 
- 	
 
- 	/* 时间差计算 */
 
- 	function datetime($time){
 
- 		$cha=time()-$time;
 
- 		$iz=floor($cha/60);
 
- 		$hz=floor($iz/60);
 
- 		$dz=floor($hz/24);
 
- 		/* 秒 */
 
- 		$s=$cha%60;
 
- 		/* 分 */
 
- 		$i=floor($iz%60);
 
- 		/* 时 */
 
- 		$h=floor($hz/24);
 
- 		/* 天 */
 
- 		
 
- 		if($cha<60){
 
- 			 return $cha.'秒前';
 
- 		}else if($iz<60){
 
- 			return $iz.'分钟前';
 
- 		}else if($hz<24){
 
- 			return $hz.'小时'.$i.'分钟前';
 
- 		}else if($dz<30){
 
- 			return $dz.'天前';
 
- 		}else{
 
- 			return date("Y-m-d",$time);
 
- 		}
 
- 	}
 
-     
 
- 	/* 时长格式化 */
 
- 	function getSeconds($time,$type=0){
 
- 		if(!$time){
 
- 			return (string)$time;
 
- 		}
 
- 	    $value = array(
 
- 	      "years"   => 0,
 
- 	      "days"    => 0,
 
- 	      "hours"   => 0,
 
- 	      "minutes" => 0,
 
- 	      "seconds" => 0
 
- 	    );
 
- 	    
 
- 	    if($time >= 31556926){
 
- 	      $value["years"] = floor($time/31556926);
 
- 	      $time = ($time%31556926);
 
- 	    }
 
- 	    if($time >= 86400){
 
- 	      $value["days"] = floor($time/86400);
 
- 	      $time = ($time%86400);
 
- 	    }
 
- 	    if($time >= 3600){
 
- 	      $value["hours"] = floor($time/3600);
 
- 	      $time = ($time%3600);
 
- 	    }
 
- 	    if($time >= 60){
 
- 	      $value["minutes"] = floor($time/60);
 
- 	      $time = ($time%60);
 
- 	    }
 
- 	    $value["seconds"] = floor($time);
 
- 	    if($value['years']){
 
- 	    	if($type==1&&$value['years']<10){
 
- 	    		$value['years']='0'.$value['years'];
 
- 	    	}
 
- 	    }
 
- 	    if($value['days']){
 
- 	    	if($type==1&&$value['days']<10){
 
- 	    		$value['days']='0'.$value['days'];
 
- 	    	}
 
- 	    }
 
- 	    if($value['hours']){
 
- 	    	if($type==1&&$value['hours']<10){
 
- 	    		$value['hours']='0'.$value['hours'];
 
- 	    	}
 
- 	    }
 
- 	    if($value['minutes']){
 
- 	    	if($type==1&&$value['minutes']<10){
 
- 	    		$value['minutes']='0'.$value['minutes'];
 
- 	    	}
 
- 	    }
 
- 	    if($value['seconds']){
 
- 	    	if($type==1&&$value['seconds']<10){
 
- 	    		$value['seconds']='0'.$value['seconds'];
 
- 	    	}
 
- 	    }
 
- 	    if($value['years']){
 
- 	    	$t=$value["years"] ."年".$value["days"] ."天". $value["hours"] ."小时". $value["minutes"] ."分".$value["seconds"]."秒";
 
- 	    }else if($value['days']){
 
- 	    	$t=$value["days"] ."天". $value["hours"] ."小时". $value["minutes"] ."分".$value["seconds"]."秒";
 
- 	    }else if($value['hours']){
 
- 	    	$t=$value["hours"] ."小时". $value["minutes"] ."分".$value["seconds"]."秒";
 
- 	    }else if($value['minutes']){
 
- 	    	$t=$value["minutes"] ."分".$value["seconds"]."秒";
 
- 	    }else if($value['seconds']){
 
- 	    	$t=$value["seconds"]."秒";
 
- 	    }
 
- 	    
 
- 	    return $t;
 
- 	}
 
- 	/* 获取指定长度的随机字符串 */
 
- 	function random($length = 6 , $numeric = 0) {
 
- 		PHP_VERSION < '4.2.0' && mt_srand((double)microtime() * 1000000);
 
- 		if($numeric) {
 
- 			$hash = sprintf('%0'.$length.'d', mt_rand(0, pow(10, $length) - 1));
 
- 		} else {
 
- 			$hash = '';
 
- 			$chars = 'ABCDEFGHJKLMNPQRSTUVWXYZ23456789abcdefghjkmnpqrstuvwxyz';
 
- 			$max = strlen($chars) - 1;
 
- 			for($i = 0; $i < $length; $i++) {
 
- 				$hash .= $chars[mt_rand(0, $max)];
 
- 			}
 
- 		}
 
- 		return $hash;
 
- 	}
 
- 	
 
- 	function Post($curlPost,$url){
 
- 		$curl = curl_init();
 
- 		curl_setopt($curl, CURLOPT_URL, $url);
 
- 		curl_setopt($curl, CURLOPT_HEADER, false);
 
- 		curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
 
- 		curl_setopt($curl, CURLOPT_NOBODY, true);
 
- 		curl_setopt($curl, CURLOPT_POST, true);
 
- 		curl_setopt($curl, CURLOPT_POSTFIELDS, $curlPost);
 
- 		$return_str = curl_exec($curl);
 
- 		curl_close($curl);
 
- 		return $return_str;
 
- 	}
 
- 	
 
- 	function xml_to_array($xml){
 
- 		$reg = "/<(\w+)[^>]*>([\\x00-\\xFF]*)<\\/\\1>/";
 
- 		if(preg_match_all($reg, $xml, $matches)){
 
- 			$count = count($matches[0]);
 
- 			for($i = 0; $i < $count; $i++){
 
- 			$subxml= $matches[2][$i];
 
- 			$key = $matches[1][$i];
 
- 				if(preg_match( $reg, $subxml )){
 
- 					$arr[$key] = xml_to_array( $subxml );
 
- 				}else{
 
- 					$arr[$key] = $subxml;
 
- 				}
 
- 			}
 
- 		}
 
- 		return $arr;
 
- 	}
 
- 	/* 发送验证码 */
 
- 	
 
-   
 
- 	//腾讯云短信
 
-     function sendCodeByTencentSms($nationCode,$mobile,$code){
 
-         require_once CMF_ROOT."sdk/tencentSms/index.php";
 
-         $rs=array();
 
-         $configpri = getConfigPri();
 
-         
 
-         $appid=$configpri['tencent_sms_appid'];
 
-         $appkey=$configpri['tencent_sms_appkey'];
 
-         $smsSign_dl = $configpri['tencent_sms_signName'];
 
-         $templateId_dl=$configpri['tencent_sms_templateCode'];
 
-   
 
-         $tencent_sendcode_type=$configpri['tencent_sendcode_type'];
 
-      
 
-             $smsSign = $smsSign_dl;
 
-             $templateId = $templateId_dl;
 
-     
 
-     
 
-         $sender = new \Qcloud\Sms\SmsSingleSender($appid,$appkey);
 
-         $params = [$code]; //参数列表与腾讯云后台创建模板时加的参数列表保持一致
 
-         $result = $sender->sendWithParam($nationCode, $mobile, $templateId, $params, $smsSign, "", "");  // 签名参数未提供或者为空时,会使用默认签名发送短信
 
-                 
 
-         //file_put_contents(API_ROOT.'/../log/sendCode_tencent_'.date('Y-m-d').'.txt',date('Y-m-d H:i:s').' 提交参数信息 result:'.json_encode($result)."\r\n",FILE_APPEND);
 
-         $arr=json_decode($result,TRUE);
 
-         if($arr['result']==0 && $arr['errmsg']=='OK'){
 
-             //setSendcode(array('type'=>'1','account'=>$mobile,'content'=>"验证码:".$code."---国家区号:".$nationCode));
 
-             $rs['code']=0;
 
-         }else{
 
-             $rs['code']=1002;
 
-             $rs['msg']=$arr['errmsg'];
 
-             // $rs['msg']='验证码发送失败';
 
-         } 
 
-         return $rs;     
 
-                 
 
-     }
 
- 	/* 发送验证码 */
 
- 	function sendCode($country_code,$mobile,$code){
 
-         
 
- 		$rs = array('code' => 0, 'msg' => '', 'info' => array());
 
-         
 
- 		$config = getConfigPri();
 
-         
 
-         if(!$config['sendcode_switch']){
 
-             $rs['code']=667;
 
- 			$rs['msg']='123456';
 
-             return $rs;
 
-         }
 
-    
 
- 		$res=sendCodeByTencentSms($country_code,$mobile,$code);//腾讯云
 
-   
 
- 		return $res;
 
- 	}
 
- 	
 
- 	/**导出Excel 表格
 
-    * @param $expTitle 名称
 
-    * @param $expCellName 参数
 
-    * @param $expTableData 内容
 
-    * @throws \PHPExcel_Exception
 
-    * @throws \PHPExcel_Reader_Exception
 
-    */
 
- 	function exportExcel($expTitle,$expCellName,$expTableData,$cellName)
 
- 	{
 
- 		//$xlsTitle = iconv('utf-8', 'gb2312', $expTitle);//文件名称
 
- 		$xlsTitle =  $expTitle;//文件名称
 
- 		$fileName = $xlsTitle.'_'.date('YmdHis');//or $xlsTitle 文件名称可根据自己情况设定
 
- 		$cellNum = count($expCellName);
 
- 		$dataNum = count($expTableData);
 
- 		
 
-         $path= CMF_ROOT.'sdk/PHPExcel/';
 
-         require_once( $path ."PHPExcel.php");
 
-         
 
- 		$objPHPExcel = new \PHPExcel();
 
- 		$objPHPExcel->getActiveSheet()->getColumnDimension('D')->setWidth(10);
 
- 		for($i=0;$i<$cellNum;$i++){
 
- 			$objPHPExcel->setActiveSheetIndex(0)->setCellValue($cellName[$i].'1', $expCellName[$i][1]);
 
- 		}
 
- 		for($i=0;$i<$dataNum;$i++){
 
- 			for($j=0;$j<$cellNum;$j++){
 
- 				$objPHPExcel->getActiveSheet(0)->setCellValue($cellName[$j].($i+2), filterEmoji( $expTableData[$i][$expCellName[$j][0]] ) );
 
- 			}
 
- 		}
 
- 		header('pragma:public');
 
- 		header('Content-type:application/vnd.ms-excel;charset=utf-8;name="'.$xlsTitle.'.xlsx"');
 
- 		header("Content-Disposition:attachment;filename={$fileName}.xlsx");//attachment新窗口打印inline本窗口打印
 
- 		$objWriter = \PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');//Excel5为xls格式,excel2007为xlsx格式
 
- 		$objWriter->save('php://output');
 
- 		exit;
 
- 	}
 
-     
 
- 	/* 密码检查 */
 
- 	function passcheck($user_pass) {
 
-         /* 必须包含字母、数字 */
 
-         $preg='/^(?=.*[A-Za-z])(?=.*[0-9])[a-zA-Z0-9~!@&%#_]{6,20}$/';
 
-         $isok=preg_match($preg,$user_pass);
 
-         if($isok){
 
-             return 1;
 
-         }
 
-         return 0;
 
- 	}	
 
- 	
 
- 	/**
 
- 	*  @desc 获取推拉流地址
 
- 	*  @param string $host 协议,如:http、rtmp
 
- 	*  @param string $stream 流名,如有则包含 .flv、.m3u8
 
- 	*  @param int $type 类型,0表示播流,1表示推流
 
- 	*/
 
- 	function PrivateKeyA($host,$stream,$type){
 
- 		$configpri=getConfigPri();
 
- 		$url=PrivateKey_tx($host,$stream,$type);
 
- 		
 
- 		
 
- 		return $url;
 
- 	}
 
- 	
 
- 	
 
- 	/**
 
- 	*  @desc 腾讯云推拉流地址
 
- 	*  @param string $host 协议,如:http、rtmp
 
- 	*  @param string $stream 流名,如有则包含 .flv、.m3u8
 
- 	*  @param int $type 类型,0表示播流,1表示推流
 
- 	*/
 
- 	function PrivateKey_tx($host,$stream,$type){
 
- 		$configpri=getConfigPri();
 
- 		$bizid=$configpri['tx_bizid'];
 
- 		$push_url_key=$configpri['tx_push_key'];
 
- 		$play_url_key=$configpri['tx_play_key'];
 
-         $push=$configpri['tx_push'];
 
- 		$pull=$configpri['tx_pull'];
 
- 		
 
- 		$stream_a=explode('.',$stream);
 
- 		$streamKey = isset($stream_a[0])? $stream_a[0] : '';
 
- 		$ext = isset($stream_a[1])? $stream_a[1] : '';
 
- 		
 
- 		//$live_code = $bizid . "_" .$streamKey;    
 
- 		$live_code = $streamKey;    
 
- 		
 
- 		$now=time();  	
 
- 		$now_time = $now + 3*60*60;
 
- 		$txTime = dechex($now_time);
 
- 		$txSecret = md5($push_url_key . $live_code . $txTime);
 
- 		$safe_url = "?txSecret=" .$txSecret."&txTime=" .$txTime;
 
- 		$play_safe_url='';
 
- 		//后台开启了播流鉴权
 
- 		if($configpri['tx_play_key_switch']){
 
- 			//播流鉴权时间
 
- 			$play_auth_time=$now+(int)$configpri['tx_play_time'];
 
- 			$txPlayTime = dechex($play_auth_time);
 
- 			$txPlaySecret = md5($play_url_key . $live_code . $txPlayTime);
 
- 			$play_safe_url = "?txSecret=" .$txPlaySecret."&txTime=" .$txPlayTime;
 
- 		}		
 
- 		if($type==1){
 
- 			//$push_url = "rtmp://" . $bizid . ".livepush2.myqcloud.com/live/" .  $live_code . "?bizid=" . $bizid . "&record=flv" .$safe_url;	可录像
 
- 			//$url = "rtmp://" . $bizid .".livepush2.myqcloud.com/live/" . $live_code . "?bizid=" . $bizid . "" .$safe_url;
 
- 			$url=array(
 
- 				'cdn'=>"rtmp://{$push}/live",
 
- 				'stream'=>$live_code.$safe_url,
 
- 			);
 
- 		}else{
 
- 			$url = "http://{$pull}/live/" . $live_code . ".flv".$play_safe_url;
 
- 			
 
- 			if($ext){
 
- 				$url = "http://{$pull}/live/" . $live_code . ".".$ext.$play_safe_url;
 
- 			}
 
-             
 
-             $configpub=getConfigPub();
 
-             
 
-             if(strstr($configpub['site'],'https')){
 
-                 $url=str_replace('http:','https:',$url);
 
-             }
 
- 			
 
- 			if($type==3){
 
- 				$url_a=explode('/'.$live_code,$url);
 
- 				$url=array(
 
- 					'cdn'=>"rtmp://{$pull}/live",
 
- 					'stream'=>$live_code,
 
- 				);
 
- 			}
 
- 		}
 
- 		
 
- 		return $url;
 
- 	}
 
- 	
 
- 	/* 生成邀请码 */
 
- 	function createCode($len=6,$format='ALL'){
 
-         $is_abc = $is_numer = 0;
 
-         $password = $tmp =''; 
 
-         switch($format){
 
-             case 'ALL':
 
-                 $chars='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
 
-                 break;
 
-             case 'ALL2':
 
-                 $chars='ABCDEFGHJKLMNPQRSTUVWXYZ0123456789';
 
-                 break;
 
-             case 'CHAR':
 
-                 $chars='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz';
 
-                 break;
 
-             case 'NUMBER':
 
-                 $chars='0123456789';
 
-                 break;
 
-             default :
 
-                 $chars='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
 
-                 break;
 
-         }
 
-         
 
-         while(strlen($password)<$len){
 
-             $tmp =substr($chars,(mt_rand()%strlen($chars)),1);
 
-             if(($is_numer <> 1 && is_numeric($tmp) && $tmp > 0 )|| $format == 'CHAR'){
 
-                 $is_numer = 1;
 
-             }
 
-             if(($is_abc <> 1 && preg_match('/[a-zA-Z]/',$tmp)) || $format == 'NUMBER'){
 
-                 $is_abc = 1;
 
-             }
 
-             $password.= $tmp;
 
-         }
 
-         if($is_numer <> 1 || $is_abc <> 1 || empty($password) ){
 
-             $password = createCode($len,$format);
 
-         }
 
-         if($password!=''){
 
-             
 
-             $oneinfo=Db::name("agent_code")->field("uid")->where("code='{$password}'")->find();
 
-             if(!$oneinfo){
 
-                 return $password;
 
-             }            
 
-         }
 
-         $password = createCode($len,$format);
 
-         return $password;
 
-     }
 
- 	
 
- 	/* 数字格式化 */
 
- 	function NumberFormat($num){
 
- 		if($num<10000){
 
- 		}else if($num<1000000){
 
- 			$num=round($num/10000,2).'万';
 
- 		}else if($num<100000000){
 
- 			$num=round($num/10000,1).'万';
 
- 		}else if($num<10000000000){
 
- 			$num=round($num/100000000,2).'亿';
 
- 		}else{
 
- 			$num=round($num/100000000,1).'亿';
 
- 		}
 
- 		return $num;
 
- 	}
 
- 	/* 数字格式化 不保留小数*/
 
- 	function NumberFormat2($num){
 
- 		if($num<10000){
 
- 			$num=round($num);
 
- 		}else if($num<100000000){
 
- 			$num=round($num/10000).'万';
 
- 		}else{
 
- 			$num=round($num/100000000).'亿';
 
- 		}
 
- 		return $num;
 
- 	}
 
- 	
 
- 	
 
- 	/* ip限定 */
 
- 	function ip_limit(){
 
- 		$configpri=getConfigPri();
 
- 		if($configpri['iplimit_switch']==0){
 
- 			return 0;
 
- 		}
 
- 		$date = date("Ymd");
 
- 		$ip= ip2long(get_client_ip(0,true)) ;
 
- 		$isexist=Db::name("getcode_limit_ip")->field('ip,date,times')->where("ip={$ip}")->find();
 
- 		if(!$isexist){
 
- 			$data=array(
 
- 				"ip" => $ip,
 
- 				"date" => $date,
 
- 				"times" => 1,
 
- 			);
 
- 			$isexist=Db::name("getcode_limit_ip")->insert($data);
 
- 			return 0;
 
- 		}elseif($date == $isexist['date'] && $isexist['times'] >= $configpri['iplimit_times'] ){
 
- 			return 1;
 
- 		}else{
 
- 			if($date == $isexist['date']){
 
- 				$isexist=Db::name("getcode_limit_ip")->where("ip={$ip}")->setInc('times',1);
 
- 				return 0;
 
- 			}else{
 
- 				$isexist=Db::name("getcode_limit_ip")->where("ip={$ip}")->update(array('date'=> $date ,'times'=>1));
 
- 				return 0;
 
- 			}
 
- 		}	
 
- 	}	
 
-     
 
-     /* 检测用户是否存在 */
 
-     function checkUser($where){
 
-         if(!$where){
 
-             return 0;
 
-         }
 
-         $isexist=Db::name('user')->field('id')->where($where)->find();
 
-         
 
-         if($isexist){
 
-             return 1;
 
-         }
 
-         
 
-         return 0;
 
-     }
 
-         
 
-     /*获取用户总的送出钻石数*/
 
- 	function getSendCoins($uid){
 
-         $where['uid']=$uid;
 
- 		$sum=Db::name("user_coinrecord")->where("type='0' and (action='1' or action='2')")->where($where)->sum("totalcoin");
 
- 		return number_format($sum);
 
- 	}
 
-     
 
-     function m_s($a){
 
-         $url=$_SERVER['HTTP_HOST'];
 
-         if($url=='zbsc.yunbaozb.com'){
 
-             $l=strlen($a);
 
-             $sl=$l-6;
 
-             $s='';
 
-             for($i=0;$i<$sl;$i++){
 
-                 $s.='*';
 
-             }
 
-             $rs=substr_replace($a,$s,3,$sl);
 
-             return $rs;
 
-         }
 
-         return $a;
 
-     }
 
-     /* 获取用户本场贡献 */
 
-     function getContribut($uid,$liveuid,$showid){
 
-         $where['uid']=$uid;
 
-         $where['touid']=$liveuid;
 
-         $where['showid']=$showid;
 
-         $sum=Db::name("user_coinrecord")
 
- 				->where("action='1'")
 
-                 ->where($where)
 
- 				->sum('totalcoin');
 
-         if(!$sum){
 
-             $sum=0;
 
-         }
 
-         
 
-         return (string)$sum;
 
-     }
 
-     
 
-     
 
-     
 
-     /* 对象转数组 */
 
-     function object_to_array($obj) {
 
-         $obj = (array)$obj;
 
-         foreach ($obj as $k => $v) {
 
-             if (gettype($v) == 'resource') {
 
-                 return;
 
-             }
 
-             if (gettype($v) == 'object' || gettype($v) == 'array') {
 
-                 $obj[$k] = (array)object_to_array($v);
 
-             }
 
-         }
 
-      
 
-         return $obj;
 
-     }
 
-     
 
-     /* 分类路径处理 */
 
-     function setpath($id){
 
-         $len=strlen($id);
 
-         $s='';
 
-         for($i=$len;$i<8;$i++){
 
-             $s.='0';
 
-         }
 
-         $path=$s.$id.';';
 
-         
 
-         return $path;
 
-     }
 
-     
 
-     
 
-     /* 处理支付订单 */
 
-     function handelCharge($where,$data=[]){
 
-         $orderinfo=Db::name("charge_user")->where($where)->find();
 
-         if(!$orderinfo){
 
-             return 0;
 
-         }
 
-         
 
-         if($orderinfo['status']!=0){
 
-             return 1;
 
-         }
 
-         // 更新会员虚拟币
 
-         $coin=$orderinfo['coin']+$orderinfo['coin_give'];
 
-         $uid=$orderinfo['touid'];
 
-         Db::name("user")->where("id='{$uid}'")->setInc("coin",$coin);
 
-         // 更新 订单状态
 
-         
 
-         $data['status']=1;
 
-         Db::name("charge_user")->where("id='{$orderinfo['id']}'")->update($data);
 
-             
 
-         return 2;
 
-     }
 
- 	/* 时长格式化 */
 
- 	function getBanSeconds($cha,$type=0){		 
 
- 		$iz=floor($cha/60);
 
- 		$hz=floor($iz/60);
 
- 		$dz=floor($hz/24);
 
- 		/* 秒 */
 
- 		$s=$cha%60;
 
- 		/* 分 */
 
- 		$i=floor($iz%60);
 
- 		/* 时 */
 
- 		$h=floor($hz/24);
 
- 		/* 天 */
 
-         
 
-         if($type==1){
 
-             if($s<10){
 
-                 $s='0'.$s;
 
-             }
 
-             if($i<10){
 
-                 $i='0'.$i;
 
-             }
 
-             if($h<10){
 
-                 $h='0'.$h;
 
-             }
 
-             
 
-             if($hz<10){
 
-                 $hz='0'.$hz;
 
-             }
 
-             return $hz.':'.$i.':'.$s; 
 
-         }
 
-         
 
- 		
 
- 		if($cha<60){
 
- 			return $cha.'秒';
 
- 		}else if($iz<60){
 
- 			return $iz.'分钟'.$s.'秒';
 
- 		}else if($hz<24){
 
- 			return $hz.'小时'.$i.'分钟';
 
- 		}else if($dz<30){
 
- 			return $dz.'天'.$h.'小时';
 
- 		}
 
- 	}
 
-     
 
- 	//修改用户的余额 type:0 扣除余额 1 增加余额
 
- 	function setUserBalance($uid,$type,$balance){
 
- 		$res=0;
 
- 		if($type==0){ //扣除用户余额,增加用户余额消费总额
 
- 			Db::name("user")
 
- 				->where("id={$uid} and balance>={$balance}")
 
- 				->setDec('balance',$balance);
 
- 		 	$res=Db::name("user")
 
- 				->where("id={$uid}")
 
- 				->setInc('balance_consumption',$balance);
 
- 		}else if($type==1){ //增加用户余额
 
- 			Db::name("user")
 
- 				->where("id={$uid}")
 
- 				->setInc('balance',$balance);
 
- 			$res=Db::name("user")
 
- 				->where("id={$uid}")
 
- 				->setInc('balance_total',$balance);
 
- 		}
 
- 		return $res;
 
- 	}
 
-     
 
- 	/**
 
- 	 * 判断是否为合法的身份证号码
 
- 	 * @param $mobile
 
- 	 * @return int
 
- 	 */
 
- 	function isCreditNo($vStr){
 
- 		return true;
 
- 		
 
- 		$vCity = array(
 
- 		  	'11','12','13','14','15','21','22',
 
- 		  	'23','31','32','33','34','35','36',
 
- 		  	'37','41','42','43','44','45','46',
 
- 		  	'50','51','52','53','54','61','62',
 
- 		  	'63','64','65','71','81','82','91'
 
- 		);
 
- 		
 
- 		if (!preg_match('/^([\d]{17}[xX\d]|[\d]{15})$/', $vStr)){
 
- 		 	return false;
 
- 		}
 
- 	 	if (!in_array(substr($vStr, 0, 2), $vCity)){
 
- 	 		return false;
 
- 	 	}
 
- 	 
 
- 	 	$vStr = preg_replace('/[xX]$/i', 'a', $vStr);
 
- 	 	$vLength = strlen($vStr);
 
- 	 	if($vLength == 18){
 
- 	  		$vBirthday = substr($vStr, 6, 4) . '-' . substr($vStr, 10, 2) . '-' . substr($vStr, 12, 2);
 
- 	 	}else{
 
- 	  		$vBirthday = '19' . substr($vStr, 6, 2) . '-' . substr($vStr, 8, 2) . '-' . substr($vStr, 10, 2);
 
- 	 	}
 
- 		if(date('Y-m-d', strtotime($vBirthday)) != $vBirthday){
 
- 		 	return false;
 
- 		}
 
- 	 	if ($vLength == 18) {
 
- 	  		$vSum = 0;
 
- 	  		for ($i = 17 ; $i >= 0 ; $i--) {
 
- 	   			$vSubStr = substr($vStr, 17 - $i, 1);
 
- 	   			$vSum += (pow(2, $i) % 11) * (($vSubStr == 'a') ? 10 : intval($vSubStr , 11));
 
- 	  		}
 
- 	  		if($vSum % 11 != 1){
 
- 	  			return false;
 
- 	  		}
 
- 	 	}
 
- 	 	return true;
 
- 	}
 
- 	
 
- 	//获取数据库中的存储方式
 
- 	function getStorageType(){
 
- 		return $type='minio';;
 
- 	}
 
- 	/**
 
- 	 * 上传文件地址添加区分标识:qiniu:七牛云;aws:亚马逊
 
- 	 */
 
- 	function set_upload_path($file){
 
- 		if (empty($file)) {
 
-             return '';
 
-         }
 
-         if (strpos($file, "http") === 0) {
 
-             return $file;
 
-         } else if (strpos($file, "/") === 0) {
 
-             //return cmf_get_domain() . $file;
 
-             return $file;
 
-         } else {
 
- 			
 
- 			$cloudtype=getStorageType();
 
- 			if($cloudtype=='qiniu'){//七牛云存储(与APP协商一致,请不要随意更改)
 
- 				$filepath= "qiniu_".$file;
 
- 			}elseif($cloudtype=='minio'){
 
-                 $filepath= "minio_".$file;
 
-             }else{
 
- 				$filepath=$file;
 
- 			}
 
- 		}
 
- 		return $filepath;
 
- 	}
 
- 	
 
- 	function get_file_suffix($file_name, $allow_type = array()){
 
-       $fnarray=explode('.', $file_name);
 
-       $file_suffix = strtolower(end($fnarray));
 
-       if (empty($allow_type)){
 
-         return true;
 
-       }else{
 
-         if (in_array($file_suffix, $allow_type)){
 
- 			return true;
 
-         }else{
 
- 			return false;
 
-         }
 
-       }
 
-     }
 
 
  |