1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- <?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_once dirname(__FILE__) . '/../HeaderEncoder.php';
- require_once dirname(__FILE__) . '/../../Encoder/Base64Encoder.php';
-
- /**
- * Handles Base64 (B) Header Encoding in Swift Mailer.
- * @package Swift
- * @subpackage Mime
- * @author Chris Corbyn
- */
- class Swift_Mime_HeaderEncoder_Base64HeaderEncoder extends Swift_Encoder_Base64Encoder implements Swift_Mime_HeaderEncoder
- {
- /**
- * Get the name of this encoding scheme.
- * Returns the string 'B'.
- * @return string
- */
- public function getName()
- {
- return 'B';
- }
-
- /**
- * Takes an unencoded string and produces a Base64 encoded string from it.
- * If the charset is iso-2022-jp, it uses mb_encode_mimeheader instead of
- * default encodeString, otherwise pass to the parent method.
- * @param string $string to encode
- * @param int $firstLineOffset
- * @param int $maxLineLength, optional, 0 indicates the default of 76 bytes
- * @param string $charset
- * @return string
- */
- public function encodeString($string, $firstLineOffset = 0, $maxLineLength = 0, $charset = 'utf-8')
- {
- if (strtolower($charset) === 'iso-2022-jp') {
- $old = mb_internal_encoding();
- mb_internal_encoding('utf-8');
- $newstring = mb_encode_mimeheader($string, $charset, $this->getName(), "\r\n");
- mb_internal_encoding($old);
-
- return $newstring;
- }
-
- return parent::encodeString($string, $firstLineOffset, $maxLineLength);
- }
- }
|