Php 有没有快速获取用户国家/地区代码的方法?

Php 有没有快速获取用户国家/地区代码的方法?,php,geolocation,Php,Geolocation,我想知道用户是从英国浏览还是使用英国浏览器。如果不是,我可以放心地假设他们是美国游客 我可以在数据库中查找他们的IP,但这有点慢,我宁愿从他们的用户代理或其他HTTP头中查找 这并不重要,如果它不总是正确的,并且存在歧义(例如有人在英国使用美国计算机) 我可以在数据库中查找他们的IP,但这有点慢 不,不是 您可以使用来检测首选语言 我可以在数据库中查找他们的IP,但这有点慢 不,不是 您可以使用来检测首选语言。您可能可以检查标题字段 14.4接受语言 接受语言请求头 字段类似于Accept,

我想知道用户是从英国浏览还是使用英国浏览器。如果不是,我可以放心地假设他们是美国游客

我可以在数据库中查找他们的IP,但这有点慢,我宁愿从他们的用户代理或其他HTTP头中查找

这并不重要,如果它不总是正确的,并且存在歧义(例如有人在英国使用美国计算机)

我可以在数据库中查找他们的IP,但这有点慢

不,不是


您可以使用来检测首选语言

我可以在数据库中查找他们的IP,但这有点慢

不,不是



您可以使用来检测首选语言。

您可能可以检查标题字段

14.4接受语言

接受语言请求头 字段类似于Accept,但 限制自然语言的集合 作为对以下问题的响应,首选 请求。定义语言标记 第3.10节

   Accept-Language = "Accept-Language" ":"
                     1#( language-range [ ";" "q" "=" qvalue ]
) 语言范围=((1*8ALPHA*(“-”1*8ALPHA))|“*”)

每个语言范围都可以指定一个 关联质量值 表示对用户的 指定语言的首选项 在这个范围内。质量价值 默认为“q=1”。比如说,

   Accept-Language: da, en-gb;q=0.8, en;q=0.7
意思是:“我更喜欢丹麦语,但我会的 接受英式英语和其他类型 一个语言范围匹配 一个语言标记,如果它完全等于 标记,或者如果它正好等于 标记的前缀,以便第一个 前缀后面的标记字符是 "-". 特殊范围“*”(如有) 在Accept Language字段中,匹配 每个标签都不匹配任何其他标签 接受语言中存在的范围 场

指定的语言质量因素 通过 接受语言领域就是质量 最长语言范围的值 在与 语言标签。如果没有语言-范围在 该字段与标记相匹配 指定的语言质量因子为0。 如果未指定接受语言标头 存在于请求中的服务器

应该假设所有语言都是 同样可以接受。如果 存在接受语言标头, 然后是分配的所有语言 大于0的品质因数为 可以接受

这可能有违隐私 期望用户发送 使用 完全的语言偏好 每个请求中的用户。暂时 关于这一问题的讨论,见第节 15.1.4

因为可懂度是高度依赖的 在单个用户上,它是 建议客户端应用程序 选择语言 用户可用的首选项。如果 那么,选择是不可用的 Accept Language标头字段必须为空 不能在请求中给出

  Note: When making the choice of linguistic preference available to
  the user, we remind implementors of  the fact that users are not
  familiar with the details of language matching as described above,
  and should provide appropriate guidance. As an example, users
  might assume that on selecting "en-gb", they will be served any
  kind of English document if British English is not available. A
  user agent might suggest in such a case to add "en" to get the
  best matching behavior.

您可能可以检查标题字段

14.4接受语言

接受语言请求头 字段类似于Accept,但 限制自然语言的集合 作为对以下问题的响应,首选 请求。定义语言标记 第3.10节

   Accept-Language = "Accept-Language" ":"
                     1#( language-range [ ";" "q" "=" qvalue ]
) 语言范围=((1*8ALPHA*(“-”1*8ALPHA))|“*”)

每个语言范围都可以指定一个 关联质量值 表示对用户的 指定语言的首选项 在这个范围内。质量价值 默认为“q=1”。比如说,

   Accept-Language: da, en-gb;q=0.8, en;q=0.7
意思是:“我更喜欢丹麦语,但我会的 接受英式英语和其他类型 一个语言范围匹配 一个语言标记,如果它完全等于 标记,或者如果它正好等于 标记的前缀,以便第一个 前缀后面的标记字符是 "-". 特殊范围“*”(如有) 在Accept Language字段中,匹配 每个标签都不匹配任何其他标签 接受语言中存在的范围 场

指定的语言质量因素 通过 接受语言领域就是质量 最长语言范围的值 在与 语言标签。如果没有语言-范围在 该字段与标记相匹配 指定的语言质量因子为0。 如果未指定接受语言标头 存在于请求中的服务器

应该假设所有语言都是 同样可以接受。如果 存在接受语言标头, 然后是分配的所有语言 大于0的品质因数为 可以接受

这可能有违隐私 期望用户发送 使用 完全的语言偏好 每个请求中的用户。暂时 关于这一问题的讨论,见第节 15.1.4

因为可懂度是高度依赖的 在单个用户上,它是 建议客户端应用程序 选择语言 用户可用的首选项。如果 那么,选择是不可用的 Accept Language标头字段必须为空 不能在请求中给出

  Note: When making the choice of linguistic preference available to
  the user, we remind implementors of  the fact that users are not
  familiar with the details of language matching as described above,
  and should provide appropriate guidance. As an example, users
  might assume that on selecting "en-gb", they will be served any
  kind of English document if British English is not available. A
  user agent might suggest in such a case to add "en" to get the
  best matching behavior.

我不知道世界上只有两个国家。谢谢你通知我们。是的,我知道会发生的。我说我可以安全地为我的申请做这个假设。我不知道世界上只有两个国家。谢谢你通知我们。是的,我知道会发生的。我说我可以放心地为我的申请做这个假设。