我正在做自己的网站,我设法编写一些代码,根据浏览器的语言将用户指向语言版本.这是脚本:
<?PHP if ($_SERVER["HTTP_ACCEPT_LANGUAGE"] == "sv") header("location: index.PHP"); if ($_SERVER["HTTP_ACCEPT_LANGUAGE"] == "pt") header("location: pt/index.PHP"); else header("location: en/index.html"); ?>
我把它放在index.PHP之前.它似乎工作,因为我不在一个英语国家,但我的浏览器是英文,我被重定向到英文版本.
它是否正确?有没有更好/更清洁的方式来做到这一点?
PHP 5.3.0附带locale_accept_from_http(),它从Accept-Language头中获取首选语言.
原文链接:https://www.f2er.com/php/139727.html你应该总是喜欢这种方法的自写法,因为头字段比人们想象的要复杂得多. (这是加权偏好的列表.)
你应该检索这样的语言:
$lang = locale_accept_from_http($_ SERVER [‘HTTP_ACCEPT_LANGUAGE’]);
但是即使如此,您也不会只为每个英文用户使用en,而不用于西班牙语.它可以变成much more difficult,像es-ES和es-US这样的东西是标准的.