suit: Sprachkennung (HTTP_ACCEPT_LANGUAGE)

Beitrag lesen

Kann ich nun den einzigen Wert bzw. den vor dem ersten Komma nehmen?

Nein - es ist nicht zwangsläufig so, dass jene werte mit Hoher Priorität auch vorne stehen.

Oder gibt's auch sowas:
ru;q=0.8,es;q=0.9,de;q=1.0

Ja.

aber auch de;q=0,en=q=0.5 wäre möglich - in diesem Fall gilt en, weil alles > 0 gültig ist.

oder andere Versionen?

Ja, auch Leerzeichen nach den Kommas sind z.B. erlaubt.

Mein PHP-Zweizeiler:

$arr_lg  = explode( ',', $_SERVER['HTTP_ACCEPT_LANGUAGE'] ); // ru,en;q=0.9,es;q=0.8,de;q=0.7

if ( $arr_lg[0] ) echo $arr_lg[0];

  
Funzt nicht, da dir die Quality verloren geht  
  
Du hättest dann  
  
ru  
en;q=0.9  
es;q=0.8  
de;q=0.7  
  
Jetzt musst du dafür sorgen, dass du ein key=>value-Paar mit Sprache und Quality hast (Reihenfolge nicht verändern):  
  
ru=>  
en=>0.9  
es=>0.8  
de=>0.7  
  
Jetzt musst du erst rausfinden, welche quality "ru" hat (bzw. alle, die keinen Wert haben) - damit musst du dich durchs Array hangeln und beim nächsten Eintrag nachsehen, ob da eine vorhanden ist - wenn ja, nimmst du diese, wenn nein schaust du bei der übernächsten nach usw bis du einen findest oder am Ende des Arrays bist - wenn alle keine Quality haben.  
  
ru=>0.9  
en=>0.9  
es=>0.8  
de=>0.7  
  
Jetzt nimmst du die verfügbaren Sprachen deiner Seite  - z.B de und en - und wirfst aus dem gelieferten Array alles Raus, was dem sowieso nicht entspricht  
  
en=>0.9  
de=>0.7  
  
Jetzt nimmst du jenen Eintrag mit der höchsten Priorität, bei gleicher Priorität jenen der zuerst aufscheint - alternativ nimmst du den, der in deiner Priorität der verfügbaren Sprachen zuerst aufscheint.