getEncoding(); if ($encoding == 'ASCII') { return wordwrap($value, 78, Headers::FOLDING); } return static::mimeEncodeValue($value, $encoding, 78); } /** * Wrap a structured header line * * @param string $value * @param StructuredInterface $header * @return string */ protected static function wrapStructuredHeader($value, StructuredInterface $header) { $delimiter = $header->getDelimiter(); $length = strlen($value); $lines = array(); $temp = ''; for ($i = 0; $i < $length; $i++) { $temp .= $value[$i]; if ($value[$i] == $delimiter) { $lines[] = $temp; $temp = ''; } } return implode(Headers::FOLDING, $lines); } /** * MIME-encode a value * * Performs quoted-printable encoding on a value, setting maximum * line-length to 998. * * @param string $value * @param string $encoding * @param int $lineLength maximum line-length, by default 998 * @return string Returns the mime encode value without the last line ending */ public static function mimeEncodeValue($value, $encoding, $lineLength = 998) { return Mime::encodeQuotedPrintableHeader($value, $encoding, $lineLength, Headers::EOL); } /** * MIME-decode a value * * Performs quoted-printable decoding on a value. * * @param string $value * @return string Returns the mime encode value without the last line ending */ public static function mimeDecodeValue($value) { $decodedValue = iconv_mime_decode($value, ICONV_MIME_DECODE_CONTINUE_ON_ERROR, 'UTF-8'); return $decodedValue; } /** * Test if is possible apply MIME-encoding * * @param string $value * @return bool */ public static function canBeEncoded($value) { $encoded = iconv_mime_encode('x-test', $value, array('scheme' => 'Q')); return (false !== $encoded); } }