Der einzige Weg, auf dem server geolocate wäre zu verwenden eine Nachschlagetabelle für die IP-Adresse. Es gibt Dienste, die dies für Sie zur Verfügung stellen, so könnte man dies tun:
$ip = !empty($_SERVER['HTTP_X_FORWARDED_FOR']) ? $_SERVER['HTTP_X_FORWARDED_FOR'] : $_SERVER['REMOTE_ADDR'];
$url = "http://freegeoip.net/json/$ip";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);
$data = curl_exec($ch);
curl_close($ch);
if ($data) {
$location = json_decode($data);
$lat = $location->latitude;
$lon = $location->longitude;
$sun_info = date_sun_info(time(), $lat, $lon);
print_r($sun_info);
}
Es wird nicht immer aber sehr genau. In JavaScript haben Sie Zugriff auf die Geopositions-API von HTML5 oder Google Maps. Umgekehrt müssen Sie bei der umgekehrten Geokodierung mit Google eine Karte verwenden, wie in den TOS angegeben.
Erm, Breitengrad ist Nord/Süd Position, Sport. – pp19dd
@ pp19dd ah, habe ich Längen- und Breitengrad geschaltet? –
Breitengrad und Längengrad kommen ziemlich in einem bestimmten Format, wenn Sie etwas anderes wollen, müssen Sie das selbst herausfinden. – adeneo