In PHP versions that have imap_mime_decode built in, it's possible to emulate the operation of this function:
<?php
function iconv_mime_decode($str, $mode=0, $charset="UTF-8")
{
$data = imap_mime_header_decode($str);
if (count($data) > 0) {
// because iconv doesn't like the 'default' for charset
$charset = ($data[0]->charset == 'default') ? 'ASCII' : $data[0]->charset;
return(iconv($charset, $charset, $data[0]->text));
}
return("");
}
?>
I've only tried to use this code snippet to decode ISO-2022-JP messages to UTF-8, but I see no reason why it shouldn't work in other cases.
iconv_mime_decode
(PHP 5)
iconv_mime_decode — Decodes a MIME header field
Описание
string iconv_mime_decode ( string $encoded_header [, int $mode= 0 [, string $charset= ini_set("iconv.internal_encoding") ]] )
Decodes a MIME header field.
Список параметров
- encoded_header
-
The encoded header, as a string.
- mode
-
mode determines the behaviour in the event iconv_mime_decode() encounters a malformed MIME header field. You can specify any combination of the following bitmasks.
Bitmasks acceptable to iconv_mime_decode() Value Constant Description 1 ICONV_MIME_DECODE_STRICT If set, the given header is decoded in full conformance with the standards defined in » RFC2047. This option is disabled by default because there are a lot of broken mail user agents that don't follow the specification and don't produce correct MIME headers. 2 ICONV_MIME_DECODE_CONTINUE_ON_ERROR If set, iconv_mime_decode_headers() attempts to ignore any grammatical errors and continue to process a given header. - charset
-
The optional charset parameter specifies the character set to represent the result by. If omitted, iconv.internal_encoding will be used.
Возвращаемые значения
Returns a decoded MIME field on success, or FALSE if an error occurs during the decoding.
Примеры
Пример #1 iconv_mime_decode() example
<?php
// This yields "Subject: Prüfung Prüfung"
echo iconv_mime_decode("Subject: =?UTF-8?B?UHLDvGZ1bmcgUHLDvGZ1bmc=?=",
0, "ISO-8859-1");
?>
Смотрите также
- iconv_mime_decode_headers() - Декодирует несколько полей заголовка MIME
- mb_decode_mimeheader() - Decode string in MIME header field
- imap_mime_header_decode() - Decode MIME header elements
- imap_base64() - Decode BASE64 encoded text
- imap_qprint() - Convert a quoted-printable string to an 8 bit string
User Contributed Notes
iconv_mime_decode
iconv_mime_decode
dido dot sevilla at gmail dot com
09-Mar-2005 04:00
09-Mar-2005 04:00