Trong PHP, hàm iconv_mime_encode() được dùng để soạn thảo một trường tiêu đề MIME. Đây là hàm PHP nội bộ.
Cú pháp
string iconv_mime_encode(string $field_name, string $field_value, array $options = [])
Hàm iconv_mime_encode() được dùng để soạn thảo và trả về chuỗi đại diện cho một trường tiêu đề MIME hợp lệ, trông như sau:
Subject: =ISO-8859-1?Q?Pr=FCfung_f=FFCr?= Entwerfen von einer MIME kopfzeile
Lưu ý: Trong ví dụ trên, Subject là field name, và phần bắt đầu bằng "=ISO-8859-1?..." là field value.
Tham số
iconv_mime_encode() chấp nhận ba tham số: $field_name, $field_value và $options.
$field_name – Tên trường.
$field_value – Giá trị trường.
$options – Dùng tham số này để kiểm soát hành vi của iconv_mime_encode() bằng cách chỉ định mảng liên hợp chứa các mục cấu hình cho tham số tùy chọn.
Dưới đây là danh sách các mục cấu hình được hỗ trợ bởi iconv_mime_encode():
| Mục | Kiểu | Mô tả | Giá trị mặc định | Ví dụ |
|---|---|---|---|---|
| scheme | string | Phương pháp mã hóa giá trị trường. Có thể là B (base64) hoặc Q (quoted-printable). | ||
| input-charset | string | Bộ ký tự của field_name (tham số 1) và field_value (tham số 2). Nếu không cho, dùng iconv.internal_charset ini setting. | iconv.internal_charset | ISO-8859-1 |
| output-charset | string | Bộ ký tự dùng để soạn thảo tiêu đề MIME. Nếu không cho, dùng giá trị input-charset. | input_charset làm mặc định | UTF-8 |
| line-length | integer | Độ dài tối đa của các dòng tiêu đề. | 76 | 996 |
| line-break-chars | string | Dãy ký tự thêm vào mỗi dòng làm EOL khi gấp dòng trường tiêu đề dài. Mặc định là "\r\n" (CR LF). | \r\n | \n |
Ví dụ 1 – Dùng lược đồ "Q" quoted-printable
<?php
$options = array(
"input-charset" => "ISO-8859-2",
"output-charset" => "UTF-8",
"line-length" => 76,
"line-break-chars" => "\n"
);
$options["scheme"] = "Q";
echo iconv_mime_encode("Subject", "Prüfung Prüfung", $options);
?>
Kết quả
Subject: =?UTF-8?Q?Pr=C3=BCfung=20Pr=C3=BCfung?=
Ví dụ 2 – Dùng lược đồ "B" base64
<?php
$options = array(
"input-charset" => "ISO-8859-1",
"output-charset" => "UTF-8",
"line-length" => 76,
"line-break-chars" => "\n"
);
$options["scheme"] = "B";
echo iconv_mime_encode("Subject", "Preços Olà.txt", $options);
?>
Kết quả
Subject: =?UTF-8?B?UHJlw4PCp29zIE9sw4PCoC50eHQ=?=