private function _tokensToString(array $tokens)
{
$lineCount = 0;
$headerLines = array();
$headerLines[] = $this->_name . ': ';
$currentLine =& $headerLines[$lineCount++];
// Build all tokens back into compliant header
foreach ($tokens as $i => $token) {
// Line longer than specified maximum or token was just a new line
if ("\r\n" == $token || $i > 0 && strlen($currentLine . $token) > $this->_lineLength && 0 < strlen($currentLine)) {
$headerLines[] = '';
$currentLine =& $headerLines[$lineCount++];
}
// Append token to the line
if ("\r\n" != $token) {
$currentLine .= $token;
}
}
// Implode with FWS (RFC 2822, 2.2.3)
return implode("\r\n", $headerLines) . "\r\n";
}