/* - Get Location (ip-api) - Sends a request to ip-api via cURL to get the approximate location of the specified IP $format - What the response should look like: 0 => Town/City, County/State, Country 1 => Town/City 2 => County/State 3 => Town/City, County/State 4 => Country 5 => State Code (ie NY) 6 => Town/City, County/State, State Code, Country 7 => Array of values => [0] = success or failure => [1] = Country => [2] = Country Code ie. GB => [3] = State Code ie. NY => [4] = Country/County/State => [5] = Town/City => [6] = Post/ZIP Code => [7] = Longitude => [8] = Latitude => [9] = Timezone ie. Europe/London => [10] = ISP => [11] = ISP => [12] = ISP Full Name => [13] = The IP address $ip - The IP to get the location of $timeout - Number of seconds to wait before giving up */ public function getLocation($format = 0, $ip = '', $timeout = 5) { if ($ip == '') $ip = $_SERVER['REMOTE_ADDR']; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, "http://ip-api.com/csv/" . $ip); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout); $data = curl_exec($ch); curl_close($ch); $arr = explode(",", $data); if ($arr[0] == "success") { // remove speech marks $i = 0; foreach ($arr as $ari) { $arr[$i] = str_replace('"', '', $ari); $i++; } if ($format == 0) { return $arr[5] . ', ' . $arr[4] . ', ' . $arr[1]; } elseif ($format == 1) { return $arr[5]; } elseif ($format == 2) { return $arr[4]; } elseif ($format == 3) { return $arr[5] . ', ' . $arr[4]; } elseif ($format == 4) { return $arr[1]; } elseif ($format == 5) { return $arr[3]; } elseif ($format == 6) { return $arr[5] . ', ' . $arr[4] . ', ' . $arr[3] . ', ' . $arr[1]; } else { return $arr; } } else { return false; } }