这是邮件中另一种编码方法 quoted-printable ,如果不用 base64加密 或者不能用,则可选用他
function _quotedPrintableEncode($input , $line_max = 76) {
$lines = preg_split("/\r\n|\r|\n/", $input);
$eol = $this->lf;
$escape = '=';
$output = '';
while (list(, $line) = each($lines)) {
$linlen = strlen($line);
$newline = '';
for ($i = 0; $i < $linlen; $i++) {
$char = substr($line, $i, 1);
$dec = ord($char);
// convert space at eol only
if ( ($dec == 32) && ($i == ($linlen - 1)) ) {
$char = '=20';
} elseif ($dec == 9) {
// Do nothing if a tab.
} elseif ( ($dec == 61) || ($dec < 32 ) || ($dec > 126) ) {
$char = $escape . strtoupper(sprintf('%02s', dechex($dec)));
}
// $this->lf is not counted
if ((strlen($newline) + strlen($char)) >= $line_max) {
// soft line break; " =\r\n" is okay
$output .= $newline . $escape . $eol;
$newline = '';
}
$newline .= $char;
}
$output .= $newline . $eol;
}
// Don't want last crlf
$output = substr($output, 0, -1 * strlen($eol));
return $output;
}