Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/bareos/bareos-webui.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/zendframework/zend-http/src/Header/ContentType.php')
-rw-r--r--vendor/zendframework/zend-http/src/Header/ContentType.php404
1 files changed, 0 insertions, 404 deletions
diff --git a/vendor/zendframework/zend-http/src/Header/ContentType.php b/vendor/zendframework/zend-http/src/Header/ContentType.php
deleted file mode 100644
index c7d0c28..0000000
--- a/vendor/zendframework/zend-http/src/Header/ContentType.php
+++ /dev/null
@@ -1,404 +0,0 @@
-<?php
-/**
- * Zend Framework (http://framework.zend.com/)
- *
- * @link http://github.com/zendframework/zf2 for the canonical source repository
- * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license http://framework.zend.com/license/new-bsd New BSD License
- */
-
-namespace Zend\Http\Header;
-
-use stdClass;
-
-/**
- * @throws Exception\InvalidArgumentException
- * @see http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.17
- */
-class ContentType implements HeaderInterface
-{
- /**
- * @var string
- */
- protected $mediaType;
-
- /**
- * @var array
- */
- protected $parameters = array();
-
- /**
- * @var string
- */
- protected $value;
-
- /**
- * Factory method: create an object from a string representation
- *
- * @param string $headerLine
- * @return self
- */
- public static function fromString($headerLine)
- {
- list($name, $value) = GenericHeader::splitHeaderLine($headerLine);
-
- // check to ensure proper header type for this factory
- if (strtolower($name) !== 'content-type') {
- throw new Exception\InvalidArgumentException(sprintf(
- 'Invalid header line for Content-Type string: "%s"',
- $name
- ));
- }
-
- $parts = explode(';', $value);
- $mediaType = array_shift($parts);
- $header = new static($value, trim($mediaType));
-
- if (count($parts) > 0) {
- $parameters = array();
- foreach ($parts as $parameter) {
- $parameter = trim($parameter);
- if (!preg_match('/^(?P<key>[^\s\=]+)\="?(?P<value>[^\s\"]*)"?$/', $parameter, $matches)) {
- continue;
- }
- $parameters[$matches['key']] = $matches['value'];
- }
- $header->setParameters($parameters);
- }
-
- return $header;
- }
-
- public function __construct($value = null, $mediaType = null)
- {
- if ($value) {
- HeaderValue::assertValid($value);
- $this->value = $value;
- }
- $this->mediaType = $mediaType;
- }
-
- /**
- * Determine if the mediatype value in this header matches the provided criteria
- *
- * @param array|string $matchAgainst
- * @return string|bool Matched value or false
- */
- public function match($matchAgainst)
- {
- if (is_string($matchAgainst)) {
- $matchAgainst = $this->splitMediaTypesFromString($matchAgainst);
- }
-
- $mediaType = $this->getMediaType();
- $left = $this->getMediaTypeObjectFromString($mediaType);
-
- foreach ($matchAgainst as $matchType) {
- $matchType = strtolower($matchType);
-
- if ($mediaType == $matchType) {
- return $matchType;
- }
-
- $right = $this->getMediaTypeObjectFromString($matchType);
-
- // Is the right side a wildcard type?
- if ($right->type == '*') {
- if ($this->validateSubtype($right, $left)) {
- return $matchType;
- }
- }
-
- // Do the types match?
- if ($right->type == $left->type) {
- if ($this->validateSubtype($right, $left)) {
- return $matchType;
- }
- }
- }
-
- return false;
- }
-
- /**
- * Create a string representation of the header
- *
- * @return string
- */
- public function toString()
- {
- return 'Content-Type: ' . $this->getFieldValue();
- }
-
- /**
- * Get the field name
- *
- * @return string
- */
- public function getFieldName()
- {
- return 'Content-Type';
- }
-
- /**
- * Get the field value
- *
- * @return string
- */
- public function getFieldValue()
- {
- if (null !== $this->value) {
- return $this->value;
- }
- return $this->assembleValue();
- }
-
- /**
- * Set the media type
- *
- * @param string $mediaType
- * @return self
- */
- public function setMediaType($mediaType)
- {
- HeaderValue::assertValid($mediaType);
- $this->mediaType = strtolower($mediaType);
- $this->value = null;
- return $this;
- }
-
- /**
- * Get the media type
- *
- * @return string
- */
- public function getMediaType()
- {
- return $this->mediaType;
- }
-
- /**
- * Set additional content-type parameters
- *
- * @param array $parameters
- * @return self
- */
- public function setParameters(array $parameters)
- {
- foreach ($parameters as $key => $value) {
- HeaderValue::assertValid($key);
- HeaderValue::assertValid($value);
- }
- $this->parameters = array_merge($this->parameters, $parameters);
- $this->value = null;
- return $this;
- }
-
- /**
- * Get any additional content-type parameters currently set
- *
- * @return array
- */
- public function getParameters()
- {
- return $this->parameters;
- }
-
- /**
- * Set the content-type character set encoding
- *
- * @param string $charset
- * @return self
- */
- public function setCharset($charset)
- {
- HeaderValue::assertValid($charset);
- $this->parameters['charset'] = $charset;
- $this->value = null;
- return $this;
- }
-
- /**
- * Get the content-type character set encoding, if any
- *
- * @return null|string
- */
- public function getCharset()
- {
- if (isset($this->parameters['charset'])) {
- return $this->parameters['charset'];
- }
- return;
- }
-
- /**
- * Assemble the value based on the media type and any available parameters
- *
- * @return string
- */
- protected function assembleValue()
- {
- $mediaType = $this->getMediaType();
- if (empty($this->parameters)) {
- return $mediaType;
- }
-
- $parameters = array();
- foreach ($this->parameters as $key => $value) {
- $parameters[] = sprintf('%s=%s', $key, $value);
- }
-
- return sprintf('%s; %s', $mediaType, implode('; ', $parameters));
- }
-
- /**
- * Split comma-separated media types into an array
- *
- * @param string $criteria
- * @return array
- */
- protected function splitMediaTypesFromString($criteria)
- {
- $mediaTypes = explode(',', $criteria);
- array_walk(
- $mediaTypes,
- function (&$value) {
- $value = trim($value);
- }
- );
-
- return $mediaTypes;
- }
-
- /**
- * Split a mediatype string into an object with the following parts:
- *
- * - type
- * - subtype
- * - format
- *
- * @param string $string
- * @return stdClass
- */
- protected function getMediaTypeObjectFromString($string)
- {
- if (!is_string($string)) {
- throw new Exception\InvalidArgumentException(sprintf(
- 'Non-string mediatype "%s" provided',
- (is_object($string) ? get_class($string) : gettype($string))
- ));
- }
-
- $parts = explode('/', $string, 2);
- if (1 == count($parts)) {
- throw new Exception\DomainException(sprintf(
- 'Invalid mediatype "%s" provided',
- $string
- ));
- }
-
- $type = array_shift($parts);
- $subtype = array_shift($parts);
- $format = $subtype;
- if (strstr($subtype, '+')) {
- $parts = explode('+', $subtype, 2);
- $subtype = array_shift($parts);
- $format = array_shift($parts);
- }
-
- $mediaType = (object) array(
- 'type' => $type,
- 'subtype' => $subtype,
- 'format' => $format,
- );
-
- return $mediaType;
- }
-
- /**
- * Validate a subtype
- *
- * @param stdClass $right
- * @param stdClass $left
- * @return bool
- */
- protected function validateSubtype($right, $left)
- {
- // Is the right side a wildcard subtype?
- if ($right->subtype == '*') {
- return $this->validateFormat($right, $left);
- }
-
- // Do the right side and left side subtypes match?
- if ($right->subtype == $left->subtype) {
- return $this->validateFormat($right, $left);
- }
-
- // Is the right side a partial wildcard?
- if ('*' == substr($right->subtype, -1)) {
- // validate partial-wildcard subtype
- if (!$this->validatePartialWildcard($right->subtype, $left->subtype)) {
- return false;
- }
- // Finally, verify format is valid
- return $this->validateFormat($right, $left);
- }
-
- // Does the right side subtype match the left side format?
- if ($right->subtype == $left->format) {
- return true;
- }
-
- // At this point, there is no valid match
- return false;
- }
-
- /**
- * Validate the format
- *
- * Validate that the right side format matches what the left side defines.
- *
- * @param string $right
- * @param string $left
- * @return bool
- */
- protected function validateFormat($right, $left)
- {
- if ($right->format && $left->format) {
- if ($right->format == '*') {
- return true;
- }
- if ($right->format == $left->format) {
- return true;
- }
- return false;
- }
-
- return true;
- }
-
- /**
- * Validate a partial wildcard (i.e., string ending in '*')
- *
- * @param string $right
- * @param string $left
- * @return bool
- */
- protected function validatePartialWildcard($right, $left)
- {
- $requiredSegment = substr($right, 0, strlen($right) - 1);
- if ($requiredSegment == $left) {
- return true;
- }
-
- if (strlen($requiredSegment) >= strlen($left)) {
- return false;
- }
-
- if (0 === strpos($left, $requiredSegment)) {
- return true;
- }
-
- return false;
- }
-}