setHeaders($headers); } public function getPluralFormsCount() { if ($this->nPlurals !== null) { return $this->nPlurals; } $header = $this->getHeaderValue('Plural-Forms'); if ($header === null) { $this->nPlurals = 0; return $this->nPlurals; } $matches = array(); if (preg_match('/nplurals=([0-9]+)/', $header, $matches) !== 1) { $this->nPlurals = 0; return $this->nPlurals; } $this->nPlurals = isset($matches[1]) ? (int)$matches[1] : 0; return $this->nPlurals; } public function setHeaders(array $headers) { $this->headers = $headers; } /** * @return array */ public function asArray() { return $this->headers; } /** * @param string $headerName * * @return string|null */ protected function getHeaderValue($headerName) { $header = array_values(array_filter( $this->headers, function ($string) use ($headerName) { return preg_match('/'.$headerName.':(.*)/i', $string) == 1; } )); return count($header) ? $header[0] : null; } }