= 4.0.6, PHP 5, PHP 7, PHP 8)mb_encode_mimeheader — 為 MIME 頭編碼字符串說明mb_encode_mimeheader( string $string, ?string $ch">
(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
進(jìn)行編碼。
string
要編碼的 string。 它的編碼應(yīng)該和 mb_internal_encoding() 一樣。
charset
charset
指定了 str
的字符集名。
其默認(rèn)值由當(dāng)前的 NLS 設(shè)置(mbstring.language
)來確定。
transfer_encoding
transfer_encoding
指定了 MIME 的編碼方案。
它可以是 "B"
(Base64)也可以是 "Q"
(Quoted-Printable)。
如果未設(shè)置,將回退為 "B"
。
newline
newline
指定了 EOL(行尾)標(biāo)記,使 mb_encode_mimeheader() 執(zhí)行了一個(gè)換行(? RFC 文檔中規(guī)定,超過長(zhǎng)度的一行將換成多行,當(dāng)前該長(zhǎng)度硬式編碼為 74 個(gè)字符)。
如果沒有設(shè)定,則回退為 "\r\n"
(CRLF)。
indent
首行縮進(jìn)(header 里 string
前的字符數(shù)目)。
轉(zhuǎn)換后的字符串版本以 ASCII 形式表達(dá)。
版本 | 說明 |
---|---|
8.0.0 |
charset 和 transfer_encoding
現(xiàn)在可以為空。
|
示例 #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;
?>
以上例程會(huì)輸出:
"=?UTF-7?Q?+WSqQzg-?=" <kru@gtinn.mon>
注意:
這個(gè)函數(shù)沒有設(shè)計(jì)成據(jù)更高級(jí)上下文的中斷點(diǎn)來換行(單詞邊界等)。 這個(gè)特性將導(dǎo)致意外的空格可能會(huì)讓原始字符串看上去很亂。