(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8)
mb_encode_mimeheader — Кодирует строку для заголовка MIME
$string,$charset = null,$transfer_encoding = null,$newline = "\r\n",$indent = 0
Функция кодирует строку (string), которую передали
в аргументе string, по схеме кодирования MIME-заголовка.
stringСтрока (string), которую требуется закодировать. Параметр принимает строку, кодировка которой совпадает с кодировкой, которую возвращает функция mb_internal_encoding().
charset
Параметр charset определяет название набора символов,
в котором представляется строка string.
Значение по умолчанию определяется настройкой национального языка по умолчанию
(англ. NLS, National Language Setting), которую устанавливает директива mbstring.language.
transfer_encoding
Параметр transfer_encoding определяет схему MIME-кодирования.
Параметр принимает либо значение «B», которое указывает кодировку Base64,
либо значение «Q», которое указывает кодировку Quoted-Printable.
Значение по умолчанию равно «B».
newline
Параметр newline определяет EOL-метку конца строки (англ. end-of-line),
которой функция mb_encode_mimeheader()
переносит строки (англ. line-folding). Line-folding — термин стандарта » RFC 2822,
который означает разбиение строки, длина которой превышает конкретную величину, на несколько строк.
Длину разбиения строки жёстко закодировали и установили значение в 74 символа.
Значение по умолчанию определили последовательностью символов «\r\n», или CRLF.
indent
Отступ первой строки — количество символов в заголовке перед параметром string.
Функция возвращает версию строки (string), которую преобразовала в ASCII-представление.
| Версия | Описание |
|---|---|
| 8.3.0 |
NUL-байты больше не отбрасываются при кодировании
строк по правилам синтаксиса QP-кодировки (англ. Quoted-Printable),
а кодируются как =00. Нулевой байт — байт со значением 0,
который в наборах символов назначают нулевой кодовой точке.
|
| 8.0.0 |
Параметры charset и transfer_encoding
теперь принимают значение null.
|
Пример #1 Пример кодировки строки для заголовка MIME функцией mb_encode_mimeheader()
<?php
$name = "太郎"; // kanji
$mbox = "kru";
$doma = "gtinn.mon";
$addr = '"' . addcslashes(mb_encode_mimeheader($name, "UTF-7", "Q"), '"') . '" <' . $mbox . "@" . $doma . ">";
echo $addr;
?>Результат выполнения приведённого примера:
"=?UTF-7?Q?+WSqQzg-?=" <kru@gtinn.mon>
Замечание:
Функция не переносит строки в высокоуровневых точках разрыва строк на основе контекста наподобие границ слов и аналогичных. Такое поведение иногда загромождает исходную строку неожиданными пробелами.