(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>
Замечание:
Функция не переносит строки в высокоуровневых точках разрыва строк на основе контекста наподобие границ слов и аналогичных. Такое поведение иногда загромождает исходную строку неожиданными пробелами.