/** * Tests the `accept_quality` method parses the quality values * correctly out of header parts * * @dataProvider provider_accept_quality * * @param array $parts input * @param array $expected expected output * @return void */ public function test_accept_quality(array $parts, array $expected) { $out = HTTP_Header::accept_quality($parts); foreach ($out as $key => $value) { $this->assertInternalType('float', $value); } $this->assertSame($expected, $out); }
public static function parse_language_header($language = NULL) { if ($language === NULL) { return array('*' => array('*' => (double) HTTP_Header::DEFAULT_QUALITY)); } $language = HTTP_Header::accept_quality(explode(',', (string) $language)); $parsed_language = array(); $keys = array_keys($language); foreach ($keys as $key) { // Extract the parts $parts = explode('-', $key, 2); // Invalid content type- bail if (!isset($parts[1])) { $parsed_language[$parts[0]]['*'] = $language[$key]; } else { // Set the parsed output $parsed_language[$parts[0]][$parts[1]] = $language[$key]; } } return $parsed_language; }