ip();//获取真实IP $url = "http://apis.juhe.cn/ip/ipNewV3"; $param = [ "key" => "40d20d107ede1653b5c3260d639362e3", "ip" => $getIp ]; $content = $this->juheHttpRequest($url,$param); $address = json_decode($content); $address = $address->result; $return['province'] = $address->Province;//省份 $return['city'] = $address->City;//城市 $return['district'] = $address->District;//区 return $return; } //根据城市获取当天天气 public function getTodayWeather(){ try { // 请求的接口URL $apiUrl = 'http://apis.juhe.cn/simpleWeather/query'; // 请求参数 $addr = $this->address(); $params = [ 'city' => $addr['city'], // 要查询的城市 'key' => config('app.weather_key') ]; $paramsString = http_build_query($params); // 发起接口网络请求 $response = $this->juheHttpRequest($apiUrl, $paramsString , 1); $result = json_decode($response, true); $data = []; if($result){ $temperature = ''; if($result['result']['realtime']['temperature']){ $temperature =$result['result']['realtime']['temperature'].'℃'; } $wid = $result['result']['realtime']['wid']; $data = [ 'city'=>$addr['city'], 'direct'=>$result['result']['realtime']['info'], 'temperature'=>$temperature, 'img'=>config("app.app_host").'/admin/weather/'.$wid.'.png', ]; } HelpHander::success($data); }catch (Exception $e){ HelpHander::success($data = [ 'city'=>'', 'direct'=>'', 'temperature'=>'', 'img'=>'' ]); } } /** * 发起网络请求函数 * @param $url 请求的URL * @param bool $params 请求的参数内容 * @param int $ispost 是否POST请求 * @return bool|string 返回内容 */ function juheHttpRequest($url, $params = false, $ispost = 0) { $httpInfo = array(); $ch = curl_init(); curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1); curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2272.118 Safari/537.36'); curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 3); curl_setopt($ch, CURLOPT_TIMEOUT, 12); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); // curl_setopt($ch, CURLOPT_PROXY, 'http://10.10.134.94:3128'); if ($ispost) { curl_setopt($ch, CURLOPT_POST, true); if($params){ curl_setopt($ch, CURLOPT_POSTFIELDS, $params); } curl_setopt($ch, CURLOPT_URL, $url); } else { if ($params) { curl_setopt($ch, CURLOPT_URL, $url.'?'.http_build_query($params)); } else { curl_setopt($ch, CURLOPT_URL, $url); } } $response = curl_exec($ch); if ($response === FALSE) { // echo "cURL Error: ".curl_error($ch); return false; } $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE); $httpInfo = array_merge($httpInfo, curl_getinfo($ch)); curl_close($ch); return $response; } }