mb_encode_mimeheader

MIMEヘッダの文字列をエンコードする

説明

string mb_encode_mimeheader(
    string $string,
    stringnull $charset = null,
    stringnull $transfer_encoding = null,
    string $newline = "\r\n",
    int $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 charsettransfer_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>

注意

注意:

この関数は、行を分割する際に特別な配慮(単語の区切りなど)を行いません。 このせいで、もとの文字列に予期せぬ空白が入ってしまう可能性があります。

参考

  • mb_decode_mimeheader