iconv_mime_decode

(PHP 5, PHP 7)

iconv_mime_decodeДекодирует поле MIME-заголовка

Описание

string iconv_mime_decode ( string $encoded_header [, int $mode = 0 [, string $charset = ini_get("iconv.internal_encoding") ]] )

Декодирует поле MIME-заголовка.

Список параметров

encoded_header

Закодированный заголовок в виде строки.

mode

mode задает режим поведения функции в случае, когда iconv_mime_decode() определит, что MIME-заголовок имеет недопустимую структуру. Режим задается комбинацией следующих битовых масок.

Битовые маски, применяемые в iconv_mime_decode()
Значение Константа Описание
1 ICONV_MIME_DECODE_STRICT Если задано, заголовок декодируется в полном соответствии со стандартом » RFC2047. Эта опция отключена по умолчанию, так как существует множество почтовых программ, которые не следуют спецификации и формируют некорректные с точки зрения стандарта MIME-заголовки.
2 ICONV_MIME_DECODE_CONTINUE_ON_ERROR Если задано, iconv_mime_decode_headers() будет пытаться пропускать грамматические ошибки и продолжать обработку заголовка.

charset

Необязательный аргумент charset задает набор символов, в котором будет представлен результат. Если аргумент опущен, будет использоваться iconv.internal_encoding.

Возвращаемые значения

Возвращает декодированный MIME-заголовок в случае успеха или FALSE в случае ошибки.

Примеры

Пример #1 Пример использования iconv_mime_decode()

<?php
// Выдаст в результате "Subject: Prüfung Prüfung"
echo iconv_mime_decode("Subject: =?UTF-8?B?UHLDvGZ1bmcgUHLDvGZ1bmc=?=",
                       
0"ISO-8859-1");
?>

Смотрите также

Коментарии

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.
2005-03-09 10:00:14
http://php5.kiev.ua/manual/ru/function.iconv-mime-decode.html
A simple and working solution for latin encoding supports Slovak, Czech, Russian ect. 
<?php iconv("utf-8""windows-1250"$SomeWeirdText); ?>

specially for those who strugle with imap_mime_header_decode
2012-12-19 13:24:52
http://php5.kiev.ua/manual/ru/function.iconv-mime-decode.html
Автор:
While creating a new webmailer, I had to coop with a lot of mails and only half of them were correct encoded!
Often the text is tagged as ISO but in real its UTF :/

After trying a lot of solutions and combination a found a way which seems to work for all our mails. Maybe its usefull to someone else too.

<?php

   
function mime_encode($data)
    {
       
$resp imap_utf8(trim($data));

        if(
preg_match("/=\?/"$resp))
           
$resp iconv_mime_decode($dataICONV_MIME_DECODE_CONTINUE_ON_ERROR"ISO-8859-15");

        if(
json_encode($resp) == 'null')
           
$resp utf8_encode($resp);

        return 
$resp;
    }

?>
2013-07-26 12:46:57
http://php5.kiev.ua/manual/ru/function.iconv-mime-decode.html

    Поддержать сайт на родительском проекте КГБ