![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/old/vendor/laminas/laminas-mail/src/Header/ |
<?php namespace Laminas\Mail\Header; use Laminas\Mime\Mime; use function strtolower; use function strtoupper; /** * Subject header class methods. * * @see https://tools.ietf.org/html/rfc2822 RFC 2822 * @see https://tools.ietf.org/html/rfc2047 RFC 2047 */ class Subject implements UnstructuredInterface { /** @var string */ protected $subject = ''; /** * Header encoding * * @var null|string */ protected $encoding; /** * @param string $headerLine * @return static */ public static function fromString($headerLine) { [$name, $value] = GenericHeader::splitHeaderLine($headerLine); $value = HeaderWrap::mimeDecodeValue($value); // check to ensure proper header type for this factory if (strtolower($name) !== 'subject') { throw new Exception\InvalidArgumentException('Invalid header line for Subject string'); } $header = new static(); $header->setSubject($value); return $header; } /** * @return string */ public function getFieldName() { return 'Subject'; } /** * @inheritDoc */ public function getFieldValue($format = HeaderInterface::FORMAT_RAW) { if (HeaderInterface::FORMAT_ENCODED === $format) { return HeaderWrap::wrap($this->subject, $this); } return $this->subject; } /** * @param string $encoding * @return self */ public function setEncoding($encoding) { if ($encoding === $this->encoding) { return $this; } if ($encoding === null) { $this->encoding = null; return $this; } $encoding = strtoupper($encoding); if ($encoding === 'UTF-8') { $this->encoding = $encoding; return $this; } if ($encoding === 'ASCII' && Mime::isPrintable($this->subject)) { $this->encoding = $encoding; return $this; } $this->encoding = null; return $this; } /** * @return string */ public function getEncoding() { if (! $this->encoding) { $this->encoding = Mime::isPrintable($this->subject) ? 'ASCII' : 'UTF-8'; } return $this->encoding; } /** * @param string $subject * @return self */ public function setSubject($subject) { $subject = (string) $subject; if (! HeaderWrap::canBeEncoded($subject)) { throw new Exception\InvalidArgumentException( 'Subject value must be composed of printable US-ASCII or UTF-8 characters.' ); } $this->subject = $subject; $this->encoding = null; return $this; } /** * @return string */ public function toString() { return 'Subject: ' . $this->getFieldValue(HeaderInterface::FORMAT_ENCODED); } }