(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
エンコードする文字列。 mb_internal_encoding() と同じエンコーディングにしなければいけません。
charset
charset
は、string
の変換後の文字セット名です。デフォルトは、現在の 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
最初の行の字下げ (ヘッダで
string
の前におく文字数)。
文字列を ASCII 表現に変換したものを返します。
バージョン | 説明 |
---|---|
8.0.0 |
charset と transfer_encoding は、
nullable になりました。
|
例1 mb_encode_mimeheader() の例
<?php
$name = "太郎"; // 漢字
$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>
注意:
この関数は、行を分割する際に特別な配慮(単語の区切りなど)を行いません。 このせいで、もとの文字列に予期せぬ空白が入ってしまう可能性があります。