2009-10-15 60 views
0

我不想要任何令人难以置信的复杂。我正在美国以外的客户工作,我只想进行基本检查,看看是否有人从美国访问他的页面。之后,我将在确定访问者来自哪里之后,以英语或西班牙语默认语言。PHP:我如何知道是否有人来自美国的IP地址?

谢谢。

+4

如果要确定默认语言,请根据Accept-Language标题进行确定,而不是根据人的位置进行确定。 http://www.cs.tut.fi/~jkorpela/multi/index-en.htm 因为我碰巧在西班牙度假,所以直接指向一个西班牙语谷歌版Google是非常令人讨厌的。我的西班牙语远不及我的母语! – Quentin 2009-10-15 19:33:29

+0

你是对的。我在南美洲也遇到同样的问题。所以,你说有另一种方式来决定语言。凉。我会检查出来的。 – willbeeler 2009-10-15 19:40:19

+1

o sea que no vas tener suerte? – asveikau 2009-10-15 19:45:02

回答

4

为什么不使用internationalization与PHP?它基于用户浏览器设置工作。我不想因为身处不同的国家而看到不同的语言;-)当我在巴黎短时间内Google开始显示搜索结果和选项时,我遇到了困难。

+1

是的,这是正确的做法。由于您只是翻译您的内容,而不是根据用户的区域设置更改实际内容。谷歌的情况有点不同,因为他们实际上做了本地化和翻译,即您在巴黎的搜索结果将包含不同的网站以及法语版本。我认为他们应该尝试并且更聪明一点,但是很多人为了兼容性原因而将他们的操作系统和浏览器设置为en-US,或者仅仅因为他们无法改变它 - 不管他们的语言/区域偏好。 – 2009-10-15 19:45:45

+0

是的,我找到了一个网站: http://www.thefutureoftheweb.com/blog/use-accept-language-header 它是什么类型的大卫Dorward说什么鸭子。 – willbeeler 2009-10-15 20:08:01

0

您可以使用像ip2location这样的服务,或者您可以使用这个更简单的PHP technique来获取访问者的语言环境信息。

+0

我看了看。我不知道。我不喜欢使用大量的外部网站和服务,但是,其他人可能会这样做。 – willbeeler 2009-10-15 20:07:03

0

MaxMind免费赠送他们的IP address location database。这对于具体国家来说足够准确。我建议使用二进制版本,因为它比将数据加载到MySQL中要快得多。除了更复杂的方法之外,它们还提供了PHP API

但正如其他人所说,IP地址是设置语言的一个可怜的东西。如果我在墨西哥旅行并使用请求英语的浏览器加载您的页面,则不应仅因为我在墨西哥而向我发送西班牙语。

相关问题