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

ParameterTypeWhat it takes
$stringstringThe string being encoded. Its encoding should be same as mb_internal_encoding().
$charset?stringcharset 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?stringtransfer_encoding specifies the scheme of MIME encoding. It should be either "B" (Base64) or "Q" (Quoted-Printable). Falls back to "B" if not given.
$newlinestringnewline 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.
$indentintIndentation 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

VersionChange
8.3.0NUL (0) bytes are no longer dropped when encoded using Quoted-Printable encoding, but encoded as =00.
8.0.0charset and transfer_encoding are nullable now.

See also

mb_decode_mimeheader()

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.