Source of file AcceptLanguage.php
Size: 2,960 Bytes - Last Modified: 2014-03-12T23:21:18+01:00
/home/theseer/Downloads/ZendFramework-2.3.0/library/Zend/Http/Header/AcceptLanguage.php
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111 | <?php /** * Zend Framework (http://framework.zend.com/) * * @link http://github.com/zendframework/zf2 for the canonical source repository * @copyright Copyright (c) 2005-2014 Zend Technologies USA Inc. (http://www.zend.com) * @license http://framework.zend.com/license/new-bsd New BSD License */ namespace Zend\Http\Header; use Zend\Http\Header\Accept\FieldValuePart; /** * Accept Language Header * * @see http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.4 */ class AcceptLanguage extends AbstractAccept { protected $regexAddType = '#^([a-zA-Z0-9+-]+|\*)$#'; /** * Get field name * * @return string */ public function getFieldName() { return 'Accept-Language'; } /** * Cast to string * * @return string */ public function toString() { return 'Accept-Language: ' . $this->getFieldValue(); } /** * Add a language, with the given priority * * @param string $type * @param int|float $priority * @return Accept */ public function addLanguage($type, $priority = 1) { return $this->addType($type, $priority); } /** * Does the header have the requested language? * * @param string $type * @return bool */ public function hasLanguage($type) { return $this->hasType($type); } /** * Parse the keys contained in the header line * * @param string $fieldValuePart * @return \Zend\Http\Header\Accept\FieldValuePart\LanguageFieldValuePart * @see \Zend\Http\Header\AbstractAccept::parseFieldValuePart() */ protected function parseFieldValuePart($fieldValuePart) { $raw = $fieldValuePart; if ($pos = strpos($fieldValuePart, '-')) { $type = trim(substr($fieldValuePart, 0, $pos)); } else { $type = trim(substr($fieldValuePart, 0)); } $params = $this->getParametersFromFieldValuePart($fieldValuePart); if ($pos = strpos($fieldValuePart, ';')) { $fieldValuePart = $type = trim(substr($fieldValuePart, 0, $pos)); } if ($pos = strpos($fieldValuePart, '-')) { $subtypeWhole = $format = $subtype = trim(substr($fieldValuePart, strpos($fieldValuePart, '-')+1)); } else { $subtypeWhole = ''; $format = '*'; $subtype = '*'; } $aggregated = array( 'typeString' => trim($fieldValuePart), 'type' => $type, 'subtype' => $subtype, 'subtypeRaw' => $subtypeWhole, 'format' => $format, 'priority' => isset($params['q']) ? $params['q'] : 1, 'params' => $params, 'raw' => trim($raw) ); return new FieldValuePart\LanguageFieldValuePart((object) $aggregated); } } |