From 50f29c7e115851e558d822466d4243013edf1987 Mon Sep 17 00:00:00 2001 From: Philip Tzou Date: Fri, 22 May 2009 17:40:00 +0000 Subject: [PATCH] Follow up on r49157. Fixed the header parsing code to conform to RFC 2616 section 14.4. --- languages/LanguageConverter.php | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/languages/LanguageConverter.php b/languages/LanguageConverter.php index df5409b3e3..746adb737d 100644 --- a/languages/LanguageConverter.php +++ b/languages/LanguageConverter.php @@ -184,8 +184,17 @@ class LanguageConverter { // preference is loaded if( array_key_exists( 'HTTP_ACCEPT_LANGUAGE', $_SERVER ) ) { $acceptLanguage = str_replace( '_', '-', strtolower($_SERVER["HTTP_ACCEPT_LANGUAGE"])); - $languages = preg_split('/[,;]/', $acceptLanguage); + + // take the part of the string up to the first semicolon + if($semiPos = strpos( $acceptLanguage, ';' ) !== false ) + $acceptLanguage = substr( $acceptLanguage, 0, $semiPos ); + + // explode by comma + $languages = explode(',', $acceptLanguage); + foreach( $languages as $language ) { + // strip whitespace + $language = trim( $language ); if( in_array( $language, $this->mVariants ) ) { return $language; break; -- 2.20.1