如何获得位置 - PHP

时间:2016-04-30 12:38:32

标签: javascript php location ip

我想在我的网页上获取客户的位置。

我可以使用PHP或Javascript。

我目前正在尝试通过客户端的IP地址和PHP的geoip扩展来获取位置。

但它需要一个datgabase,我不想要那个。

有没有其他方法可以找到客户的位置?

2 个答案:

答案 0 :(得分:2)

您可以使用http://ipinfo.io/这是第三方数据库。

该数据库不需要任何插件,因此可以很容易地与PHP一起使用。

$ip = $_SERVER['REMOTE_ADDR']; // get client's IP
$details = json_decode(file_get_contents("http://ipinfo.io/{$ip}/json"));// Send to ipinfo
echo $details->city; // Gives you the city of the client.
echo $details->country; // Gives you the country of the client.

编辑:我也看到你添加了一个javascript标签,你可以用jQuery做到这一点。

$.get("http://ipinfo.io", function(response) {
    console.log(response.city);
}, "jsonp");

答案 1 :(得分:0)

您可以使用javascript获取纬度和经度。

<body>

<p>Click the button to get your coordinates.</p>

<button onclick="getLocation()">Try It</button>

<p id="demo"></p>

<script>
var x = document.getElementById("demo");

function getLocation() {
if (navigator.geolocation) {
    navigator.geolocation.getCurrentPosition(showPosition, showError);
} else { 
    x.innerHTML = "Geolocation is not supported by this browser.";
}
}

function showPosition(position) {
x.innerHTML = "Latitude: " + position.coords.latitude + 
"<br>Longitude: " + position.coords.longitude;  
}

function showError(error) {
switch(error.code) {
    case error.PERMISSION_DENIED:
        x.innerHTML = "User denied the request for Geolocation."
        break;
    case error.POSITION_UNAVAILABLE:
        x.innerHTML = "Location information is unavailable."
        break;
    case error.TIMEOUT:
        x.innerHTML = "The request to get user location timed out."
        break;
    case error.UNKNOWN_ERROR:
        x.innerHTML = "An unknown error occurred."
        break;
  }
}
</script>