HTTP_ACCEPT_LANGUAGE始终显示英语

时间:2018-11-14 01:17:02

标签: php http-accept-language

我正在尝试使用以下方法获取当前用户的语言设置:

$lang = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2);

当我通过VPN进入另一个国家或什至使用geopeeker.com时,回显$ lang时仍会显示“ en”。

此方法不是解决此问题的最佳方法吗?还是我的测试方法有缺陷?

2 个答案:

答案 0 :(得分:1)

Accept-Language标头不是由您所访问的国家/地区设置的,而是由您的浏览器设置的。如果 you ,并且使用相同的浏览器将VPN连接到另一个国家/地区,则您的浏览器仍会发送相同的标头。这是浏览器首选项中的一项设置,或者浏览器从系统的语言环境首选项中获取它。

答案 1 :(得分:0)

这基于您的浏览器设置,并在请求标头中发送。有关更改浏览器设置的信息,请参见How to add custom Accept-Languages to Chrome for pseudolocalization testing?,或考虑使用curl之类的方法手动指定它们。