是否可以从用户访问站点的位置获取大洲? 我知道我可以像这样获取浏览器的语言:::
<?php
$lang = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2);
switch ($lang){
case "fr":
//echo "PAGE FR";
include("index_fr.php");//include check session FR
break;
case "it":
//echo "PAGE IT";
include("index_it.php");
break;
case "en":
//echo "PAGE EN";
include("index_en.php");
break;
default:
//echo "PAGE EN - Setting Default";
include("index_en.php");//include EN in all other cases of different lang detection
break;
}
?>
我也知道有一些 php
函数调用 -> geoip_continent_code_by_name
如果传递一个带有主机名的字符串,它将返回我:
代码大陆名称
AF Africa
AN Antarctica
AS Asia
EU Europe
NA North america
OC Oceania
SA South america
但是这只会返回主机名,所以除了访问该站点的用户之外,有什么方法可以获得相同的结果吗?或者甚至可以做?
最佳答案
我建议一开始使用 Maxmind GeoLite2 数据库。它具有知识共享许可,如果您需要更完整的 IP 覆盖范围,您可以在以后升级到商业 GeoIP2 数据库。该数据库中提供了国家和大洲代码。
我在这里描述了如何编译扩展,以及如何在 PHP 中使用 mmdb 数据库:
Intro to Maxmind GeoLite2 with Kohana PHP
关于php - 在 php 中获取用户的大洲/国家或位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18749866/