{ $uid = null; $status = 0; } } if($uid) { $userApi = \Common\Api\ApiFactory::getInstance()->getModuleApi('User', 'User'); $userInfo = $userApi->getUserById($uid); $mobile = $userInfo['mobile']; } else { $mobile = null; } $result = array( 'uid' => $uid, 'mobile' => $mobile, 'status' => $status, ); return $result; } function login($user) { $authData = array( 'uid'=>$user['id'], 'mobile'=>$user['mobile'] ); session('home_auth_user',$authData); $authStr = 'uid='.$user['id'].'&mobile='.$user['mobile']; cookie('diandianzu_auto',think_encrypt($authStr)); } function isHomeUserLogin() { $userData = session('home_auth_user'); if($userData['uid'] > 0) { return $userData; } $cookieData = cookie('diandianzu_auto'); if($cookieData) { $userStr = think_decrypt($cookieData); parse_str($userStr); $userData = array( 'uid'=>$uid, 'mobile'=>$mobile ); $userApi = ApiFactory::getInstance()->getModuleApi('User', 'User'); $uinfo = $userApi->getUserById($uid); if($uinfo['mobile'] == $mobile) { return $userData; } } return false; } function voice_send($url, $data){ $ch = curl_init(); header("Content-Type:text/html;charset=utf-8"); curl_setopt($ch, CURLOPT_HTTPHEADER, array( 'Accept:text/plain;charset=utf-8', 'Content-Type:application/x-www-form-urlencoded', 'charset=utf-8' ) ); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_TIMEOUT, 10); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt ($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data)); $response = curl_exec($ch); curl_close($ch); return $response; } function getDistance($lat1, $lng1, $lat2, $lng2) { $earthRadius = 6367000; $lat1 = ($lat1 * pi() ) / 180; $lng1 = ($lng1 * pi() ) / 180; $lat2 = ($lat2 * pi() ) / 180; $lng2 = ($lng2 * pi() ) / 180; $calcLongitude = $lng2 - $lng1; $calcLatitude = $lat2 - $lat1; $stepOne = pow(sin($calcLatitude / 2), 2) + cos($lat1) * cos($lat2) * pow(sin($calcLongitude / 2), 2); $stepTwo = 2 * asin(min(1, sqrt($stepOne))); $calculatedDistance = $earthRadius * $stepTwo; return round($calculatedDistance); } function emojiReplace($content) { $content = json_encode($content); $content = preg_replace("#(\\\u(e|d)[0-9a-f]{3})#ie","addslashes('\\1')",$content); $content = json_decode($content); $content = str_replace('\ud83c\udffe','',$content); return $content; } function getNearbyPoiByDistance($lng,$lat,$distance) { $percent = 1.4142; $rang = array( array('lng'=>$lng,'lat'=>$lat-0.00465*$distance/500), array('lng'=>$lng,'lat'=>$lat+0.00465*$distance/500), array('lng'=>$lng-0.00465*$distance/500,'lat'=>$lat), array('lng'=>$lng+0.00465*$distance/500,'lat'=>$lat), array('lng'=>$lng-0.00465*$distance/500/$percent,'lat'=>$lat-0.00465*$distance/500/$percent), array('lng'=>$lng+0.00465*$distance/500/$percent,'lat'=>$lat-0.00465*$distance/500/$percent), array('lng'=>$lng-0.00465*$distance/500/$percent,'lat'=>$lat+0.00465*$distance/500/$percent), array('lng'=>$lng+0.00465*$distance/500/$percent,'lat'=>$lat+0.00465*$distance/500/$percent) ); shuffle($rang); return $rang; } function getBeyondApartPoi($lng,$lat,$distance,$poiRang=array()) { $poiArr = array(array('lng'=>$lng,'lat'=>$lat)); $poiArr = array_merge($poiArr,getNearbyPoiByDistance($lng,$lat,$distance)); $poiArr = array_merge($poiArr,getNearbyPoiByDistance($lng,$lat,$distance*2)); foreach($poiArr as $poi) { $flag = true; foreach($poiRang as $poiR) { $distanceDiff = getDistance($poiR['lat'],$poiR['lng'],$poi['lat'],$poi['lng']); if($distanceDiff<$distance) { $flag = false; } } if($flag==true) { $lng = $poi['lng']; $lat = $poi['lat']; return array('lng'=>$lng,'lat'=>$lat); } } return array('lng'=>$lng,'lat'=>$lat); } function snowAdviserMemberReplace($member) { if($member['realName']) { $member['nickname'] = $member['realName']; } if($member['avatar']) { $member['headimgurl'] = $member['avatar']; } return $member; } function curl_multi($nodes, $referer = '', $timeout = 10, $needRet = false) { set_time_limit(0); $node_count = count($nodes); if($node_count <= 0) { return false; } $nodes = array_values($nodes); if(!$refer