php:如何检测网站的国家/地区?

时间:2014-03-30 11:44:57

标签: php

我的目标是编写一个php函数:

getCountry($url) {
...
return $countryCode;
}

是否有“足够好”的方式来检测网站的国家/地区?

我说的是国家,而不是服务器的地理位置。

如果我的策略足够好?

如果tld是本地的(例如:.fr) - >法国

else解析Header Accept-Language:en-US或解析html页面。

也许有一个远程API?喜欢whois?

2 个答案:

答案 0 :(得分:1)

我担心这里有一些混乱......你提出的算法非常不准确:

  • TLD没有告诉您关于该网站所在国家/地区的任何:大多数情况下,您不需要居住在TLD的国家/地区得到一个依赖它的域名。
  • HTTP标头Accept-Language显然是关于语言,而不是位置。您只会获得有关网站内容编写语言的信息。en-US在您的示例中定义了美式英语。

网站的国家 托管的国家/地区,即其网络服务器的位置。这可以通过以下方式检索:

然而,在某些情况下(例如,隐藏在CloudFlare背后的网站),这可能会变得不准确。

如果这不是您正在寻找的内容,那么我建议您编辑您的问题并向我们提供有关您要实现的目标的更多信息......

答案 1 :(得分:0)

这听起来像是在询问用户在网络浏览器中使用的语言?例如,如果在法国说法语的人会用法语阅读他们的保龄球,而来自美国的法国访客则会在法国,但是用英语阅读他们的浏览器。

$userBrowserLang = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2);
if($userBrowserLang == 'fr') {

           include("index_french.php"); //french version of index page.

 }