Seditio Source
Root |
./othercms/xenForo 2.2.8/src/vendor/laminas/laminas-mail/src/Header/GenericMultiHeader.php
<?php

/**
 * @see       https://github.com/laminas/laminas-mail for the canonical source repository
 * @copyright https://github.com/laminas/laminas-mail/blob/master/COPYRIGHT.md
 * @license   https://github.com/laminas/laminas-mail/blob/master/LICENSE.md New BSD License
 */

namespace Laminas\Mail\Header;

/**
 * Generic class for Headers with multiple occurs in the same message
 */
class GenericMultiHeader extends GenericHeader implements MultipleHeadersInterface
{
    public static function
fromString($headerLine)
    {
        list(
$fieldName, $fieldValue) = GenericHeader::splitHeaderLine($headerLine);
       
$fieldValue = HeaderWrap::mimeDecodeValue($fieldValue);

        if (
strpos($fieldValue, ',')) {
           
$headers = [];
            foreach (
explode(',', $fieldValue) as $multiValue) {
               
$headers[] = new static($fieldName, $multiValue);
            }
            return
$headers;
        }

        return new static(
$fieldName, $fieldValue);
    }

   
/**
     * Cast multiple header objects to a single string header
     *
     * @param  array $headers
     * @throws Exception\InvalidArgumentException
     * @return string
     */
   
public function toStringMultipleHeaders(array $headers)
    {
       
$name   = $this->getFieldName();
       
$values = [$this->getFieldValue(HeaderInterface::FORMAT_ENCODED)];

        foreach (
$headers as $header) {
            if (!
$header instanceof static) {
                throw new
Exception\InvalidArgumentException(
                   
'This method toStringMultipleHeaders was expecting an array of headers of the same type'
               
);
            }
           
$values[] = $header->getFieldValue(HeaderInterface::FORMAT_ENCODED);
        }

        return
$name . ': ' . implode(',', $values);
    }
}