首页 > 解决方案 > 检查数组值是否包含浏览器国家代码

问题描述

如果德语是浏览器语言之一,我正在尝试显示指向我的登录页面的德语版本的链接,但我遇到的问题是该数组以一个值返回所有语言。如何检查该值是否包含某些字母?这是我正在使用的代码和我看到的返回:

$langarray = array(substr($_SERVER['HTTP_ACCEPT_LANGUAGE'],0,100));
if(in_array('de', $langarray)){
    $showdelink = '<a style="color: #004f5d;" href="/de/">View the DE homepage</a>';
}

我得到以下返回:

Array ( [0] => en-US,en;q=0.9,de;q=0.8 )

所以我遇到的问题是该值不是专门的“de”,而是包含“de”,所以链接没有显示。如何检查“de”是否与返回值一致。谢谢

标签: phphttp-accept-language

解决方案


你可以使用strpos,如

if(strpos($langarray[0], "de") !== false) {
    $showdelink = '<a style="color: #004f5d;" href="/de/">View the DE homepage</a>';
}

推荐阅读