mb_encode_mimeheader()
mb_encode_mimeheader() — Encode string for MIME header.
Built-in function of PHP 8.5. The manual lists it as available in PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8. This page is the reference card: signature, parameters and return value, plus the changelog and the example the manual provides.
What it does
Encodes a given string string by the MIME header encoding scheme.
Signature
mb_encode_mimeheader(string $string, ?string $charset = null, ?string $transfer_encoding = null, string $newline = "\r\n", int $indent = 0): string
Parameters
| Parameter | Type | What it takes |
|---|---|---|
| $string | string | The string being encoded. Its encoding should be same as mb_internal_encoding(). |
| $charset | ?string | charset specifies the name of the character set in which string is represented in. The default value is determined by the current NLS setting (mbstring.language). |
| $transfer_encoding | ?string | transfer_encoding specifies the scheme of MIME encoding. It should be either "B" (Base64) or "Q" (Quoted-Printable). Falls back to "B" if not given. |
| $newline | string | newline specifies the EOL (end-of-line) marker with which mb_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. |
| $indent | int | Indentation of the first line (number of characters in the header before string). |
Return value
A converted version of the string represented in ASCII.
Example
A runnable snippet:
$name = "太郎"; // kanji $mbox = "kru"; $doma = "gtinn.mon"; $addr = '"' . addcslashes(mb_encode_mimeheader($name, "UTF-7", "Q"), '"') . '" <' . $mbox . "@" . $doma . ">"; echo $addr;
Output:
"=?UTF-7?Q?+WSqQzg-?=" <kru@gtinn.mon>
Changelog
| Version | Change |
|---|---|
| 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. |
See also
All PHP 8.5 built-in functions
Reference card built from the PHP manual page mb_encode_mimeheader() (PHP documentation, CC BY 3.0). The page is generated from the manual, so the wording of the parameter and return value text follows php.net.