mb_encode_mimeheader

Encode string for MIME header

&reftitle.description; `string` `mb_encode_mimeheader` `string` `string` ``string``null```charset`&null; ``string``null```transfer_encoding`&null; `string` `newline`"\r\n" `int` `indent` 0

Encodes a given `string` `string` by the MIME header encoding scheme.

&reftitle.parameters;

`string`

- The `string` being encoded. Its encoding should be same as `mb_internal_encoding`.

`charset`

- `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`

- `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`

- `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`

- Indentation of the first line (number of characters in the header before `string`).

&reftitle.returnvalues;

A converted version of the `string` represented in ASCII.

&reftitle.changelog;

&Version; | &Description;
8.0.0 | `charset` and `transfer_encoding` are nullable now.

&reftitle.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;
    ?>

&example.outputs;

    "=?UTF-7?Q?+WSqQzg-?=" <kru@gtinn.mon>

&reftitle.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.

&reftitle.seealso;

- `mb_decode_mimeheader`