gpt4 book ai didi

php - 如何使用 PHP 从 $_SERVER ['HTTP_ACCEPT_LANGUAGE' ] 获取语言值?

转载 作者:IT王子 更新时间:2023-10-28 23:58:53 25 4
gpt4 key购买 nike

<?php
$language = $_SERVER['HTTP_ACCEPT_LANGUAGE'];
echo $language;
?>

当我使用 Firefox 测试这段代码时,我得到 en-us,en;q=0.7,ja;q=0.3,

当我用IE测试代码块时,我得到了zh-cn

$_SERVER['HTTP_ACCEPT_LANGUAGE'] 的值是字符串吗?如何判断首选语言是中文还是日文?如何编写正则表达式以从 $_SERVER['HTTP_ACCEPT_LANGUAGE'] 的值中获取语言?

最佳答案

是的,$_SERVER['HTTP_ACCEPT_LANGUAGE'] 的值是一个字符串 -- 参见 $_SERVER .

它的内容由浏览器发送——这解释了为什么根据您使用的浏览器会得到不同的结果:很可能,您的 Firefox 配置为请求英文页面(高优先级)或日语(低优先级),而您的 IE 配置为请求中文页面。

这是因为 HTTP header 可以包含:

  • 语言列表
  • 可选,带有地区代码
  • 具有相关的优先级。

想法是服务器应该响应,使用适合“最佳”用户请求的语言。


关于解析该 header ,这篇博文可能很有趣:Parse Accept-Language to detect a user's language

建议使用一部分代码来解析该 HTTP header ——它会生成一个如下所示的数组(引用):

Array
(
[en-ca] => 1
[en] => 0.8
[en-us] => 0.6
[de-de] => 0.4
[de] => 0.2
)

这是一个语言数组,按优先级降序排列——这可能就是您想要的。

关于php - 如何使用 PHP 从 $_SERVER ['HTTP_ACCEPT_LANGUAGE' ] 获取语言值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2316476/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com