function Rfc2231Encoder::encodeString
Takes an unencoded string and produces a string encoded according to RFC 2231 from it.
Overrides EncoderInterface::encodeString
File
-
vendor/
symfony/ mime/ Encoder/ Rfc2231Encoder.php, line 24
Class
- Rfc2231Encoder
- @author Chris Corbyn
Namespace
Symfony\Component\Mime\EncoderCode
public function encodeString(string $string, ?string $charset = 'utf-8', int $firstLineOffset = 0, int $maxLineLength = 0) : string {
$lines = [];
$lineCount = 0;
$lines[] = '';
$currentLine =& $lines[$lineCount++];
if (0 >= $maxLineLength) {
$maxLineLength = 75;
}
$charStream = new CharacterStream($string, $charset);
$thisLineLength = $maxLineLength - $firstLineOffset;
while (null !== ($char = $charStream->read(4))) {
$encodedChar = rawurlencode($char);
if ('' !== $currentLine && \strlen($currentLine . $encodedChar) > $thisLineLength) {
$lines[] = '';
$currentLine =& $lines[$lineCount++];
$thisLineLength = $maxLineLength;
}
$currentLine .= $encodedChar;
}
return implode("\r\n", $lines);
}