$apiUrl){ $apiUrl = sprintf($apiUrl, $ip); $result = httpGet($apiUrl,'array',5); $data = self::getResult($key, $result, $format); if(!empty($data)){ RedisService::set($cacheKey, ['apiUrl'=> $apiUrl, 'data'=> $data], 7*24*3600); return $data; } } return false; } /** * 解析结果数据 * @param $apiName 接口名称 * @param $result 接口返回数据 * @return array */ private static function getResult($apiName, $result, $format){ switch ($apiName){ case 'pconline': // 太平洋 $address = []; if(isset($result['pro'])){ $address[] = isset($result['pro'])? $result['pro'] : ''; } if(isset($result['city'])){ $address[] = isset($result['city'])? $result['city'] : ''; } return $format==1 && $address? implode(' ', $address) : $result; break; case 'taobao': // 淘宝 $address = []; $result = isset($result['data'])? $result['data'] : []; if(isset($result['region'])){ $address[] = isset($result['region'])? $result['region'] : ''; } if(isset($result['city'])){ $address[] = isset($result['city'])? $result['city'] : ''; } return $format==1 && $address? implode(' ', $address) : $result; break; default: // 默认 return $format==1? (isset($result['city'])? $result['city'] : '') : $result; } } }