Skip to content

Commit 07bf69f

Browse files
committed
Add special case for invalid Accept-Language string
1 parent e3b74f2 commit 07bf69f

File tree

2 files changed

+3
-2
lines changed

2 files changed

+3
-2
lines changed

src/AcceptLanguage.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
class AcceptLanguage
88
{
9-
const REGEX = '/([a-z]{1,8}(?:-[a-z0-9]{1,8})?)(?:;q=([0-9].[0-9]+))?/i';
9+
const REGEX = '/([a-z*]{1,8}(?:-[a-z0-9]{1,8})?)(?:;q=([0-9].[0-9]+))?/i';
1010

1111
/**
1212
* @param string $in
@@ -22,7 +22,7 @@ public static function parse(string $in)
2222
$q = $matches[2] ?? 1;
2323
$locale = $matches[1] ?? null;
2424

25-
if ($locale === null)
25+
if ($locale === null || $locale === '*')
2626
continue;
2727

2828
$locales[$q][$locale] = (float)$q;

test/AcceptLanguageTest.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ public function parseProvider()
1414
['en;q=0.7, en-gb;q=0.8, da, *', ['da', 'en-gb', 'en', '*']],
1515
['*, en;q=0.9, en-US', ['en-US', 'en', '*']],
1616
['cc, aa, bb', ['cc', 'aa', 'bb']],
17+
['de-CH, fr;q=0.9, en;q=0.8, de;q=0.7, *;q=0.5', ['de-CH', 'fr', 'en', 'de', '*']],
1718
];
1819
}
1920

0 commit comments

Comments
 (0)