function AbstractHeader::getEncodableWordTokens
Splits a string into tokens in blocks of words which can be encoded quickly.
Return value
string[]
1 call to AbstractHeader::getEncodableWordTokens()
- AbstractHeader::encodeWords in vendor/
symfony/ mime/ Header/ AbstractHeader.php - Encode needed word tokens within a string of input.
File
-
vendor/
symfony/ mime/ Header/ AbstractHeader.php, line 163
Class
- AbstractHeader
- An abstract base MIME Header.
Namespace
Symfony\Component\Mime\HeaderCode
protected function getEncodableWordTokens(string $string) : array {
$tokens = [];
$encodedToken = '';
// Split at all whitespace boundaries
foreach (preg_split('~(?=[\\t ])~', $string) as $token) {
if ($this->tokenNeedsEncoding($token)) {
$encodedToken .= $token;
}
else {
if ('' !== $encodedToken) {
$tokens[] = $encodedToken;
$encodedToken = '';
}
$tokens[] = $token;
}
}
if ('' !== $encodedToken) {
$tokens[] = $encodedToken;
}
foreach ($tokens as $i => $token) {
// whitespace(s) between 2 encoded tokens
if (0 < $i && isset($tokens[$i + 1]) && preg_match('~^[\\t ]+$~', $token) && $this->tokenNeedsEncoding($tokens[$i - 1]) && $this->tokenNeedsEncoding($tokens[$i + 1])) {
$tokens[$i - 1] .= $token . $tokens[$i + 1];
array_splice($tokens, $i, 2);
}
}
return $tokens;
}