<?php

$knownlangs = array( "de", "en", "eo", "fr" ); #etc
$lang = "en"; # Last-ditch fallback, it's the most developed wiki
$lastquality = 0.0;

# Note HTTP reference RFC 2616 - ftp://ftp.isi.edu/in-notes/rfc2616.txt


$langtag = '((?:[a-zA-Z]{1,8})(?:-[a-zA-Z]{1,8})*)';
$qvalue ='(0(?:\.[0-9]{1,3})?|1(?:\.0{1,3}))';
$eachbit = '^' . $langtag . '(?:;q=' . $qvalue . ')?(?:,\s*)?(.*)$';

$alh = trim( $HTTP_SERVER_VARS["HTTP_ACCEPT_LANGUAGE"] );

echo "$alh<br>\n\n";

while(strlen($alh)) {
	if( preg_match( "/$eachbit/", $alh, $m ) ) {
		$tag = $m[1];
		$quality = $m[2];
		if(strlen($quality) == 0) $quality = 1;
    	$alh = $m[3];
    	
    	#echo "language '$tag' quality '$quality'\n";
    	
    	if(in_array($tag, $knownlangs) and $quality > $lastquality) {
    		$lang = $tag;
    		$lastquality = $quality;
    	}
	} else {
		break;
	}
}

echo "Using language $lang with preference $lastquality";

?>
