mb_encode_mimeheader
(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8)
mb_encode_mimeheader — 為 MIME 頭編碼字串
說明
string
$string
,?string
$charset
= null
,?string
$transfer_encoding
= null
,string
$newline
= "\r\n",int
$indent
= 0): string
按 MIME 頭編碼方案將指定的字串 string
進行編碼。
參數
-
string
-
要編碼的 string。 它的編碼應該和 mb_internal_encoding() 一樣。
-
charset
-
charset
指定了str
的字符集名。 其預設值由目前的 NLS 設定(mbstring.language
)來確定。 -
transfer_encoding
-
transfer_encoding
指定了 MIME 的編碼方案。 它可以是"B"
(Base64)也可以是"Q"
(Quoted-Printable)。 如果未設定,將回退為"B"
。 -
newline
-
newline
指定了 EOL(行尾)標記,使 mb_encode_mimeheader() 執行了一個換行(» RFC 文件中規定,超過長度的一行將換成多行,目前該長度硬式編碼為 74 個字元)。 如果沒有設定,則回退為"\r\n"
(CRLF)。 -
indent
-
首行縮排(header 里
string
前的字元數目)。
返回值
轉換后的字串版本以 ASCII 形式表達。
更新日誌
版本 | 說明 |
---|---|
8.0.0 |
charset 和 transfer_encoding
現在可以為空。
|
範例
示例 #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-?=" <[email protected]>
註釋
注意:
這個函式沒有設計成據更高級上下文的中斷點來換行(單詞邊界等)。 這個特性將導致意外的空格可能會讓原始字串看上去很亂。