0

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

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

当我 VPN 进入另一个国家,甚至使用 geopeeker.com 时,当我回显 $lang 时,我仍然会得到“en”。

这种方法不是解决这个问题的最好方法吗?还是我的测试方法有缺陷?

4

2 回答 2

1

Accept-Language 标头不是由您访问的国家/地区设置的,而是由您的浏览器设置的。如果使用相同的浏览器,VPN 到另一个国家,您的浏览器仍然会发送相同的标头。它要么是浏览器首选项中的设置,要么是浏览器从系统的区域设置首选项中获取的。

于 2018-11-14T01:21:18.683 回答
0

这取决于您的浏览器设置,并在请求标头中发送。请参阅如何将自定义接受语言添加到 Chrome 以进行伪本地化测试?用于更改浏览器设置,或考虑使用 curl 之类的东西手动指定它们。

于 2018-11-14T01:21:26.523 回答