示例#1
0
 public static function ParsePreferred()
 {
     if (self::$_preferred == null) {
         //			$session=Session::Get();
         //			if (($session->langs) && (is_array($session->langs)))
         //			{
         //				self::$_preferred=$session->langs;
         //				return;
         //			}
         preg_match_all('/([a-z]{1,8}(-[a-z]{1,8})?)\\s*(;\\s*q\\s*=\\s*(1|0\\.[0-9]+))?/i', $_SERVER['HTTP_ACCEPT_LANGUAGE'], $lang_parse);
         if (count($lang_parse[1])) {
             for ($i = 0; $i < count($lang_parse[1]); $i++) {
                 $lang_parse[1][$i] = array_shift(explode('-', $lang_parse[1][$i]));
             }
             $langs = array_combine($lang_parse[1], $lang_parse[4]);
             foreach ($langs as $lang => $val) {
                 if ($val === '') {
                     $langs[$lang] = 1;
                 }
             }
         }
         if (is_array($langs)) {
             arsort($langs, SORT_NUMERIC);
             foreach ($langs as $lang => $value) {
                 $thelangs[] = $lang;
             }
         }
         //        	$session->langs=$thelangs;
         //        	$session->save();
         self::$_preferred = $thelangs;
     }
 }