加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php – 自动检测语言和重定向用户

发布时间:2020-12-13 14:04:05 所属栏目:PHP教程 来源:网络整理
导读:我正在做自己的网站,我设法编写一些代码,根据浏览器的语言将用户指向语言版本.这是脚本: ?php if ($_SERVER["HTTP_ACCEPT_LANGUAGE"] == "sv") header("location: index.php"); if ($_SERVER["HTTP_ACCEPT_LANGUAGE"] == "pt") header("location: pt/index.
我正在做自己的网站,我设法编写一些代码,根据浏览器的语言将用户指向语言版本.这是脚本:
<?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头中获取首选语言.

你应该总是喜欢这种方法的自写法,因为头字段比人们想象的要复杂得多. (这是加权偏好的列表.)

你应该检索这样的语言:

$lang = locale_accept_from_http($_ SERVER [‘HTTP_ACCEPT_LANGUAGE’]);

但是即使如此,您也不会只为每个英文用户使用en,而不用于西班牙语.它可以变成much more difficult,像es-ES和es-US这样的东西是标准的.

这意味着您应该遍历一个正则表达式的列表,您可以尝试使用这种方式确定页面语言.以PHP-I18N为例.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读