Вход Регистрация
Файл: concrete5.7.5.6/concrete/vendor/zendframework/zend-http/src/Header/Accept.php
Строк: 58
<?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 ZendHttpHeader;

use 
ZendHttpHeaderAcceptFieldValuePart;

/**
 * Accept Header
 *
 * @see        http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.1
 */
class Accept extends AbstractAccept
{
    
/**
     * @var string
     */
    
protected $regexAddType '#^([a-zA-Z+-]+|*)/(*|[a-zA-Z0-9+-]+)$#';

    
/**
     * Get field name
     *
     * @return string
     */
    
public function getFieldName()
    {
        return 
'Accept';
    }

    
/**
     * Cast to string
     *
     * @return string
     */
    
public function toString()
    {
        return 
'Accept: ' $this->getFieldValue();
    }

    
/**
     * Add a media type, with the given priority
     *
     * @param  string $type
     * @param  int|float $priority
     * @param  array $params
     * @return Accept
     */
    
public function addMediaType($type$priority 1, array $params = array())
    {
        return 
$this->addType($type$priority$params);
    }

    
/**
     * Does the header have the requested media type?
     *
     * @param  string $type
     * @return bool
     */
    
public function hasMediaType($type)
    {
        return 
$this->hasType($type);
    }

    
/**
     * Parse the keys contained in the header line
     *
     * @param  string $fieldValuePart
     * @return FieldValuePartAcceptFieldValuePart
     * @see    ZendHttpHeaderAbstractAccept::parseFieldValuePart()
     */
    
protected function parseFieldValuePart($fieldValuePart)
    {
        
$raw $fieldValuePart;
        if (
$pos strpos($fieldValuePart'/')) {
            
$type trim(substr($fieldValuePart0$pos));
        } else {
            
$type trim(substr($fieldValuePart0));
        }

        
$params $this->getParametersFromFieldValuePart($fieldValuePart);

        if (
$pos strpos($fieldValuePart';')) {
            
$fieldValuePart trim(substr($fieldValuePart0$pos));
        }

        if (
$pos strpos($fieldValuePart'/')) {
            
$subtypeWhole $format $subtype trim(substr($fieldValuePartstrpos($fieldValuePart'/') + 1));
        } else {
            
$subtypeWhole '';
            
$format '*';
            
$subtype '*';
        }

        
$pos strpos($subtype'+');
        if (
false !== $pos) {
            
$format trim(substr($subtype$pos 1));
            
$subtype trim(substr($subtype0$pos));
        }

        
$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 
FieldValuePartAcceptFieldValuePart((object) $aggregated);
    }
}
Онлайн: 1
Реклама