2015年12月20日 星期日

php 偵測語系

function getDefaultLanguage()
{
    if (isset($_SERVER['HTTP_ACCEPT_LANGUAGE'])) {
        return parseDefaultLanguage($_SERVER['HTTP_ACCEPT_LANGUAGE']);
    } else {
        return parseDefaultLanguage(null);
    }
}

function parseDefaultLanguage($http_accept, $deflang = 'zh-TW')
{
    if (isset($http_accept) && strlen($http_accept) > 1) {
        # Split possible languages into array
        $x = explode(',', $http_accept);
        foreach ($x as $val) {
            #check for q-value and create associative array. No q-value means 1 by rule
            if (preg_match("/(.*);q=([0-1]{0,1}.\d{0,4})/i", $val, $matches)) {
                $lang[$matches[1]] = (float) $matches[2];
            } else {
                $lang[$val] = 1.0;
            }
        }

        #return default language (highest q-value)
        $qval = 0.0;
        foreach ($lang as $key => $value) {
            if ($value > $qval) {
                $qval = (float) $value;
                $deflang = $key;
            }
        }
    }

    return strtolower($deflang);
}

echo getDefaultLanguage();

沒有留言:

張貼留言