mirror of
https://github.com/torrentpier/torrentpier-lts.git
synced 2025-03-01 15:21:02 +03:00
94 lines
2.4 KiB
PHP
94 lines
2.4 KiB
PHP
<?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\Mail\Header;
|
|
|
|
use Zend\Mail\Headers;
|
|
|
|
/**
|
|
* @todo Allow setting date from DateTime, Zend\Date, or string
|
|
*/
|
|
class Received implements HeaderInterface, MultipleHeadersInterface
|
|
{
|
|
/**
|
|
* @var string
|
|
*/
|
|
protected $value;
|
|
|
|
public static function fromString($headerLine)
|
|
{
|
|
list($name, $value) = GenericHeader::splitHeaderLine($headerLine);
|
|
$value = HeaderWrap::mimeDecodeValue($value);
|
|
|
|
// check to ensure proper header type for this factory
|
|
if (strtolower($name) !== 'received') {
|
|
throw new Exception\InvalidArgumentException('Invalid header line for Received string');
|
|
}
|
|
|
|
$header = new static($value);
|
|
|
|
return $header;
|
|
}
|
|
|
|
public function __construct($value = '')
|
|
{
|
|
if (! HeaderValue::isValid($value)) {
|
|
throw new Exception\InvalidArgumentException('Invalid Received value provided');
|
|
}
|
|
$this->value = $value;
|
|
}
|
|
|
|
public function getFieldName()
|
|
{
|
|
return 'Received';
|
|
}
|
|
|
|
public function getFieldValue($format = HeaderInterface::FORMAT_RAW)
|
|
{
|
|
return $this->value;
|
|
}
|
|
|
|
public function setEncoding($encoding)
|
|
{
|
|
// This header must be always in US-ASCII
|
|
return $this;
|
|
}
|
|
|
|
public function getEncoding()
|
|
{
|
|
return 'ASCII';
|
|
}
|
|
|
|
public function toString()
|
|
{
|
|
return 'Received: ' . $this->getFieldValue();
|
|
}
|
|
|
|
/**
|
|
* Serialize collection of Received headers to string
|
|
*
|
|
* @param array $headers
|
|
* @throws Exception\RuntimeException
|
|
* @return string
|
|
*/
|
|
public function toStringMultipleHeaders(array $headers)
|
|
{
|
|
$strings = array($this->toString());
|
|
foreach ($headers as $header) {
|
|
if (! $header instanceof Received) {
|
|
throw new Exception\RuntimeException(
|
|
'The Received multiple header implementation can only accept an array of Received headers'
|
|
);
|
|
}
|
|
$strings[] = $header->toString();
|
|
}
|
|
return implode(Headers::EOL, $strings);
|
|
}
|
|
}
|