2015年12月20日 星期日

php 偵測語系

```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(); ```