我的目标是写一个PHP函数:php:如何检测网站的国家?
getCountry($url) {
...
return $countryCode;
}
是否有“足够好”的方式来检测网站的国家吗?
我说的是国家,而不是服务器的geoip。
如果我的策略够好?
如果TLD是本地的(例如:.FR) - >法国
其他分析首部的Accept-Language:EN-US或解析HTML页面。
也许有一个远程API的呢?像whois?
我的目标是写一个PHP函数:php:如何检测网站的国家?
getCountry($url) {
...
return $countryCode;
}
是否有“足够好”的方式来检测网站的国家吗?
我说的是国家,而不是服务器的geoip。
如果我的策略够好?
如果TLD是本地的(例如:.FR) - >法国
其他分析首部的Accept-Language:EN-US或解析HTML页面。
也许有一个远程API的呢?像whois?
恐怕就在这里有些困惑......你提出的算法是非常不准确的:
Accept-Language
显然是关于语言而不是位置。您只会获得有关网站内容编写语言的信息。en-US
在您的示例中定义了美国英语。网站的国它托管在国内的,即它的Web服务器的位置。这可以通过检索:
但是,在某些情况下,这可能会变得不准确(例如,隐藏在CloudFlare后面的网站)。
如果这是不是你要找什么,那么我建议你修改你的问题,给我们介绍一下你想达到什么样的详细信息...
这听起来像你问,是什么语言用户在他们的网络浏览器中使用?例如,如果法国的一位说法语的人会用法语阅读他们的bowser,而来自美国的法国访问者则会在法国,但用英语阅读他们的浏览器。
$userBrowserLang = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2);
if($userBrowserLang == 'fr') {
include("index_french.php"); //french version of index page.
}
如果域名没有告诉你,和托管的geoip的不充分,那么“不” ......提高对你的业务需求,这是[PHP的 –
可能重复的问题 - 检测国家](http://stackoverflow.com/questions/14414705/php-detect-country) – MarkP
什么是“网站的国家”,如果不是其服务器的位置?这在这里是非常不合理的......或者你正在谈论网站的语言区域设置(en-US是一个区域设置,而不是位置)? –