mb_encode_mimeheader
(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8)
Encode string for MIME header
Description
Encodes a given string string by the MIME header encoding scheme.
Parameters
stringThe
stringbeing encoded. Its encoding should be same asmb_internal_encoding().charsetcharsetspecifies the name of the character set in whichstringis represented in. The default value is determined by the current NLS setting (mbstring.language).transfer_encodingtransfer_encodingspecifies the scheme of MIME encoding. It should be either"B"(Base64) or"Q"(Quoted-Printable). Falls back to"B"if not given.newlinenewlinespecifies the EOL (end-of-line) marker with whichmb_encode_mimeheader()performs line-folding (a RFC term, the act of breaking a line longer than a certain length into multiple lines. The length is currently hard-coded to 74 characters). Falls back to"\r\n"(CRLF) if not given.indentIndentation of the first line (number of characters in the header before
string).
Return Values
A converted version of the string represented in ASCII.
Changelog
| Version | Description |
|---|---|
| 8.3.0 | NUL (0) bytes are no longer dropped when encoded using Quoted-Printable encoding, but encoded as =00. |
| 8.0.0 | charset and transfer_encoding are nullable now. |
Examples
mb_encode_mimeheader() example
<?php
$name = "太郎"; // kanji
$mbox = "kru";
$doma = "gtinn.mon";
$addr = '"' . addcslashes(mb_encode_mimeheader($name, "UTF-7", "Q"), '"') . '" <' . $mbox . "@" . $doma . ">";
echo $addr;
?>The above example will output:
"=?UTF-7?Q?+WSqQzg-?=" <kru@gtinn.mon>Notes
This function isn't designed to break lines at higher-level contextual break points (word boundaries, etc.). This behaviour may clutter up the original string with unexpected spaces.