如何为美国人应用美式风格,为英国人应用英式风格?
例如,我想根据用户在我的站点中的位置更改标志。
首先,您需要找到访问者的 IP 地址。它将在 $_SERVER['REMOTE_ADDR'] 全局变量中。然后,您可以根据 IP 到国家/地区映射的数据库查找此 IP,以获取 IP 的国家/地区代码。
这种方法不是 100% 准确,但对于大多数用途来说“足够好”,更重要的是它速度快。如果您期望高流量,您可能希望将国家/地区代码缓存在 cookie 中以避免重复查找。
一个这样的映射可以在这里找到:http: //software77.net/cgi-bin/ip-country/geo-ip.pl
一个 PHP 类,它接受 IP 并使用捆绑的映射文件返回国家/地区代码: http ://www.phpclasses.org/browse/package/2363.html
如果你真的想要用户的位置,关键字是geolocation。
但是,出于您的目的,您可以检查$_SERVER["ACCEPT_LANGUAGE"]
. 语法有点复杂。幸运的是,几乎每个客户都会立即做应该做的事情并订购首选位置。因此,计算您支持的所有语言环境(如“en-us”)并采用最低的,丢弃产生错误的语言环境。stripos
($_SERVER["ACCEPT_LANGUAGE"], $lang)
$lang