diff options
Diffstat (limited to 'External/swiftmailer/lib/classes/Swift/Mime/ContentEncoder/Base64ContentEncoder.php')
-rwxr-xr-x | External/swiftmailer/lib/classes/Swift/Mime/ContentEncoder/Base64ContentEncoder.php | 81 |
1 files changed, 81 insertions, 0 deletions
diff --git a/External/swiftmailer/lib/classes/Swift/Mime/ContentEncoder/Base64ContentEncoder.php b/External/swiftmailer/lib/classes/Swift/Mime/ContentEncoder/Base64ContentEncoder.php new file mode 100755 index 0000000..e89938e --- /dev/null +++ b/External/swiftmailer/lib/classes/Swift/Mime/ContentEncoder/Base64ContentEncoder.php @@ -0,0 +1,81 @@ +<?php + +/* + * This file is part of SwiftMailer. + * (c) 2004-2009 Chris Corbyn + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +//@require 'Swift/Mime/ContentEncoder.php'; +//@require 'Swift/Encoder/Base64Encoder.php'; +//@require 'Swift/InputByteStream.php'; +//@require 'Swift/OutputByteStream.php'; + +/** + * Handles Base 64 Transfer Encoding in Swift Mailer. + * @package Swift + * @subpackage Mime + * @author Chris Corbyn + */ +class Swift_Mime_ContentEncoder_Base64ContentEncoder + extends Swift_Encoder_Base64Encoder + implements Swift_Mime_ContentEncoder +{ + + /** + * Encode stream $in to stream $out. + * @param Swift_OutputByteStream $in + * @param Swift_InputByteStream $out + * @param int $firstLineOffset + * @param int $maxLineLength, optional, 0 indicates the default of 76 bytes + */ + public function encodeByteStream( + Swift_OutputByteStream $os, Swift_InputByteStream $is, $firstLineOffset = 0, + $maxLineLength = 0) + { + if (0 >= $maxLineLength || 76 < $maxLineLength) + { + $maxLineLength = 76; + } + + $remainder = 0; + + while (false !== $bytes = $os->read(8190)) + { + $encoded = base64_encode($bytes); + $encodedTransformed = ''; + $thisMaxLineLength = $maxLineLength - $remainder - $firstLineOffset; + + while ($thisMaxLineLength < strlen($encoded)) + { + $encodedTransformed .= substr($encoded, 0, $thisMaxLineLength) . "\r\n"; + $firstLineOffset = 0; + $encoded = substr($encoded, $thisMaxLineLength); + $thisMaxLineLength = $maxLineLength; + $remainder = 0; + } + + if (0 < $remainingLength = strlen($encoded)) + { + $remainder += $remainingLength; + $encodedTransformed .= $encoded; + $encoded = null; + } + + $is->write($encodedTransformed); + } + } + + /** + * Get the name of this encoding scheme. + * Returns the string 'base64'. + * @return string + */ + public function getName() + { + return 'base64'; + } + +} |