如何通过PHP检查用户浏览器的语言?
我需要为美国和英国的人们展示不同的页面.
我尝试了以下代码失败
我为美国和英国的人们运行了一个特定的代码.
可能只是一个区分大小写的问题; eregi('en-us')或preg_match('/ en-us/i')本应该把它拿起来.
但是,只是在标题中查找"en-us"可能会错误,特别是在列出美国和英国语言时."Accept-Language"实际上是一个非常复杂的标题,你真的需要一个合适的解析器.
如果您有PECL,那么整个工作已经为您完成:http://www.php.net/manual/en/function.http-negotiate-language.php
我不知道为什么其他答案是针对User-Agent标头的; 这完全是假的.用户代理不被要求在任何特定的地方保留语言价值,对于某些浏览器(例如Opera,以及一些我从未听说过的称为"Internet Explorer"的小型浏览器),它根本不会.凡确实含有一种语言,那将是该语言的编译器安装在,而不是用户的是什么,你应该看着首选语言.(此设置将默认为构建语言,但可由用户从首选项UI自定义.)