请问如何使用PHP获取用户城市?我想要这样的东西,例如:
如果用户来自纽约,请显示文字“你好,你在纽约”。如果用户来自洛杉矶,请显示“你好,你在洛杉矶”。当然我想用于其他东西但是sintax就是那个。
在谷歌和堆栈中进行搜索,但找不到合适的解决方案。通过IP查找并不是一个好主意,因为在巴西这里例如,我们的互联网提供商是在州首府,而不是在我们的地区。所以通过ip注册互联网提供商的位置,而不是我的位置。
如果您对此有所了解,谢谢。
答案 0 :(得分:2)
最可靠的提供商之一提供免费服务,例如
http://api.hostip.info/get_html.php?ip=12.215.42.19
结果将是
国家:美国(美国)
城市:Sugar Grove,IL
IP:12.215.42.19
来自PHP
$ip = '12.215.42.19';
$info = file_get_contents("http://api.hostip.info/get_html.php?ip=$ip");
然后通过一些文字处理,您可以轻松获得城市。
另一种方式使用此API:
答案 1 :(得分:1)
虽然您可以在PHP中执行此操作,但@ceejayoz提出了一个有效的观点,如果您在每次加载页面时都这样做会显着减慢您的网站速度。
更具可扩展性的替代方案是在客户端使用javascript(或者在此示例中为jQuery)执行此操作。
var url = "http://api.hostip.info/get_json.php?ip=24.66.128.2";
$(document).ready(function() {
$.get(url, function(data) {
alert(data.city);
$('#city').text(data.city);
});
});
使用您的IP:http://jsfiddle.net/remus/wBzRr/
查看其实际效果警告:A)这对每个人都不起作用,有时会返回“未知城市” - 你需要优雅地处理这个问题, B)它也会返回状态;您可能想要编写一个简单的正则表达式来检索城市部分。或者,您可以使用更复杂的API提供程序来执行此操作。