iconv_mime_encode
(PHP 5, PHP 7)
iconv_mime_encode — MIME
ヘッダフィールドを作成する
説明
iconv_mime_encode
( string $field_name
, string $field_value
[, array $options
= []
] ) : string|false
有効な MIME
ヘッダフィールドを作成し、返します。
これは以下のような形式になります。
Subject: =?ISO-8859-1?Q?Pr=FCfung_f=FCr?= Entwerfen von einer MIME kopfzeile
上の例では "Subject" がフィールド名、"=?ISO-8859-1?..." で始まる部分が フィールドの値となります。
パラメータ
field_name
フィールド名。
field_value
フィールドの値。
options
iconv_mime_encode() の振る舞いを変更するには、 ここで設定項目を含む連想配列を指定します。 iconv_mime_encode() でサポートされている項目は 以下のとおりです。項目名の大文字・小文字は区別されることに注意してください。
iconv_mime_encode() でサポートされる設定項目 項目 型 説明 デフォルト値 例 scheme string フィールドの値のエンコード方法を指定します。"B" か "Q" の どちらかを指定することになるでしょう。"B" は
base64
エンコードを、また "Q" はquoted-printable
エンコードを表します。B B input-charset string 第 1 パラメータ field_name
と第 2 パラメータfield_value
の文字セットを指定します。 指定されなかった場合は、iconv_mime_encode() は ini 設定 iconv.internal_encoding であると仮定します。iconv.internal_encoding ISO-8859-1 output-charset string MIME
ヘッダを作成する文字セットを指定します。iconv.internal_encoding UTF-8 line-length int ヘッダ行の長さの最大値を指定します。もし結果がこの値より 長くなった場合は、 » RFC2822 - Internet Message Format に基づいてヘッダを "折りたたんで" 複数行に分割します。 指定されなかった場合は、長さは 76 文字に限定されます。
76 996 line-break-chars string 長いヘッダフィールドに対して "折りたたみ" 処理が行われる場合に 個々の行の後ろに付加される文字列を指定します。 指定されなかった場合は、"\r\n" (
CR
LF
)が用いられます。 このパラメータは、input-charset
の値にかかわらず 常に ASCII 文字列として扱われることに注意してください。\r\n \n
返り値
成功した場合はエンコードした MIME
フィールド、
エンコード時にエラーが発生した場合は false
を返します。
例
例1 iconv_mime_encode() の例:
<?php$preferences = array( "input-charset" => "ISO-8859-1", "output-charset" => "UTF-8", "line-length" => 76, "line-break-chars" => "\n");$preferences["scheme"] = "Q";// この結果は "Subject: =?UTF-8?Q?Pr=C3=BCfung=20Pr=C3=BCfung?=" となります。echo iconv_mime_encode("Subject", "Prüfung Prüfung", $preferences);$preferences["scheme"] = "B";// この結果は "Subject: =?UTF-8?B?UHLDvGZ1bmcgUHLDvGZ1bmc=?=" となります。echo iconv_mime_encode("Subject", "Prüfung Prüfung", $preferences);?>
参考
- imap_binary() - 8 ビット文字列を base64 文字列に変換する
- mb_encode_mimeheader() - MIMEヘッダの文字列をエンコードする
- imap_8bit() - 8 ビット文字列を quoted-printable 文字列に変換する
- quoted_printable_encode() - 8 ビット文字列を quoted-printable 文字列に変換する