Advertisement
arxeiss

Get language

Oct 12th, 2014
339
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 1.24 KB | None | 0 0
  1. <?php
  2. function printFormat($var){
  3.   echo str_replace(array("  ","\n"), array(" &nbsp;","<br>"), print_r($var,true))."<br>";
  4. }
  5. function language_by_q($simpleLang = true){
  6.   $primary = array();
  7.   $accept = explode(",",$_SERVER["HTTP_ACCEPT_LANGUAGE"]);
  8.   for($i = 0; $i < count($accept); $i++){
  9.     $lang = explode(";", $accept[$i]);
  10.     $q = 1;
  11.     if(isset($lang[1])){
  12.       $pos = strpos($lang[1], "=");
  13.       if($pos !== false)
  14.         $q = floatval(substr($lang[1], $pos + 1));
  15.     }
  16.     if($simpleLang){
  17.       $pos = strpos($lang[0], "-");
  18.       if($pos !== false)
  19.         $lang[0] = substr($lang[0], 0, $pos);
  20.     }
  21.     if(in_array($q, $primary))
  22.       $q -= 0.001;
  23.     if(isset($primary[$lang[0]]))
  24.       continue;
  25.     $primary[$lang[0]] = $q;
  26.   }
  27.   arsort($primary,SORT_NUMERIC);
  28.   return $primary;
  29. }
  30.  
  31. echo "Jazyky od prohlížeče: <br>";
  32. printFormat($_SERVER["HTTP_ACCEPT_LANGUAGE"]);
  33. /* Příklad:  cs,en-GB;q=0.8,en;q=0.6  */
  34.  
  35. echo "<br>Vybrán jen hlavní jazyk<br>";
  36. printFormat(language_by_q());
  37. /* Příklad:  Array
  38. (
  39.    [cs] => 1
  40.    [en] => 0.8
  41. )  */
  42.  
  43. echo "<br>Vybrány lokalizace jazyků<br>";
  44. printFormat(language_by_q(false));
  45. /* Příklad: Array
  46. (
  47.    [cs] => 1
  48.    [en-GB] => 0.8
  49.    [en] => 0.6
  50. ) */
  51. ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement