如何通过
PHP检查用户浏览器的语言?
我需要为美国和英国的人们展示不同的网页.
我尝试以下代码失败
<?PHP if(ereg("us",$_SERVER["HTTP_ACCEPT_LANGUAGE"])) include('http://page.com/us.txt'); else include('http://page.com/uk.txt'); ?>
我为美国和英国的人运行了一个特定的代码.
很可能只是一个区分大小写的问题; eregi(‘en-us’)或preg_match(‘/ en-us / i’)应该拿起它.
原文链接:https://www.f2er.com/php/130616.html然而,只是在标题中寻找’en-us’有时可能会出错,特别是当美国和英国的语言被列出时. “接受语言”实际上是一个复杂的头,这真的是你想要一个正确的解析器.
如果你有PECL,整个工作已经为你完成了:http://www.php.net/manual/en/function.http-negotiate-language.php
我不知道为什么其他的答案正在为用户代理头;这是完全虚伪的用户代理不是要求在任何特定的地方持有语言值,对于某些浏览器(例如Opera,以及我从未听说过的“Internet Explorer”的一些小型浏览器),它根本不会.它包含一种语言,这将是浏览器构建所安装的语言,而不是您应该查看的用户首选语言. (此设置将默认为构建语言,但可由用户从首选项UI自定义.)