public function PHPMailer::EncodeQPphp in SMTP Authentication Support 7
Same name and namespace in other branches
- 7.2 smtp.phpmailer.inc \PHPMailer::EncodeQPphp()
Encode string to quoted-printable. Only uses standard PHP, slow, but will always work @access public
Parameters
string $string the text to encode:
integer $line_max Number of chars allowed on a line before wrapping:
Return value
string
1 call to PHPMailer::EncodeQPphp()
- PHPMailer::EncodeQP in ./
smtp.phpmailer.inc - Encode string to RFC2045 (6.7) quoted-printable format Uses a PHP5 stream filter to do the encoding about 64x faster than the old version Also results in same content as you started with after decoding @access public
File
- ./
smtp.phpmailer.inc, line 1643 - The mail handler class in smtp module, based on code of the phpmailer library, customized and relicensed to GPLv2.
Class
- PHPMailer
- PHPMailer - PHP email transport class NOTE: Requires PHP version 5 or later @package PHPMailer @author Andy Prevost @author Marcus Bointon @copyright 2004 - 2009 Andy Prevost
Code
public function EncodeQPphp($input = '', $line_max = 76, $space_conv = FALSE) {
$hex = array(
'0',
'1',
'2',
'3',
'4',
'5',
'6',
'7',
'8',
'9',
'A',
'B',
'C',
'D',
'E',
'F',
);
$lines = preg_split('/(?:\\r\\n|\\r|\\n)/', $input);
$eol = "\r\n";
$escape = '=';
$output = '';
foreach ($lines as $line) {
$linlen = strlen($line);
$newline = '';
for ($i = 0; $i < $linlen; $i++) {
$c = substr($line, $i, 1);
$dec = ord($c);
if ($i == 0 && $dec == 46) {
// convert first point in the line into =2E
$c = '=2E';
}
if ($dec == 32) {
if ($i == $linlen - 1) {
// convert space at eol only
$c = '=20';
}
elseif ($space_conv) {
$c = '=20';
}
}
elseif ($dec == 61 || $dec < 32 || $dec > 126) {
// always encode "\t", which is *not* required
$h2 = floor($dec / 16);
$h1 = floor($dec % 16);
$c = $escape . $hex[$h2] . $hex[$h1];
}
if (strlen($newline) + strlen($c) >= $line_max) {
// CRLF is not counted
$output .= $newline . $escape . $eol;
// soft line break; " =\r\n" is okay
$newline = '';
// check if newline first character will be point or not
if ($dec == 46) {
$c = '=2E';
}
}
$newline .= $c;
}
// end of for
$output .= $newline . $eol;
}
// end of foreach
return $output;
}