(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
Кодирует по схеме кодирования MIME-заголовка переданную
в параметр string
строку (string).
string
Кодируемая строка (string). Её кодировка должна быть такой же, какую возвращает функция mb_internal_encoding().
charset
Параметр charset
задаёт имя кодировки, в котором
представлена строка string
. По умолчанию значение
определяется настройкой NLS (mbstring.language
).
transfer_encoding
Параметр transfer_encoding
задаёт схему MIME-кодирования.
Это может быть либо «B»
(Base64), либо
«Q»
(Quoted-Printable). По умолчанию
«B»
.
newline
Параметр newline
задаёт метку EOL (конец строки,
end-of-line), которой функция mb_encode_mimeheader()
завершает строки (line-folding — термин » RFC,
означающий разбиение строки длиннее заданной длины на несколько строк.
Значение длины жёстко задано — 74 символа).
По умолчанию «\r\n»
(CRLF).
indent
Отступ первой строки (число символов в заголовке перед параметром string
).
Функция возвращает преобразованную версию строки (string) в кодировке ASCII.
Версия | Описание |
---|---|
8.0.0 |
Параметры charset и transfer_encoding
теперь могут принимать значение null.
|
Пример #1 Пример использования функции 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>
Замечание:
Эта функция не рассчитана на выполнение высокоуровневых контекстуальных разрывов строк (перенос слов целиком и т. п.). Такое поведение может засорить исходную строку неожидаемыми пробелами.