Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Кодировка имен вложений при получении почты, imap 
:(
    Опции темы
Rusman
Дата 27.12.2013, 17:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 312
Регистрация: 4.5.2006
Где: Пермь

Репутация: нет
Всего: нет



Здравствуйте! Получаю письма через функцию imap_open
При разборе вложений получаем следующую структуру (Имя файла на кириллице в непонятном виде):

stdClass Object
(
    [type] => 3
    [encoding] => 3
    [ifsubtype] => 1
    [subtype] => VND.MS-OFFICE
    [ifdescription] => 0
    [ifid] => 0
    [bytes] => 1212792
    [ifdisposition] => 1
    [disposition] => attachment
    [ifdparameters] => 1
    [dparameters] => Array
        (
            [0] => stdClass Object
                (
                    [attribute] => filename
                    [value] => =?UTF-8?Q?=D0=9F=D1=80=D0=B0=D0=B9=D1=81-=D0=BB=D0=B8=D1=81=D1=82_=D0=B5=D0=B2=D1=80=D0=BE=D0=BF=D0=B0_26.12_(1).xls?=
                )

        )

    [ifparameters] => 1
    [parameters] => Array
        (
            [0] => stdClass Object
                (
                    [attribute] => name
                    [value] => =?UTF-8?Q?=D0=9F=D1=80=D0=B0=D0=B9=D1=81-=D0=BB=D0=B8=D1=81=D1=82_=D0=B5=D0=B2=D1=80=D0=BE=D0=BF=D0=B0_26.12_(1).xls?=
                )

        )

)

Код:

Код

$connect  = imap_open("{imap.mail.ru:143/imap}", "***", "***");

if ($connect == false)
    die('Не могу подключиться');
else
    echo 'Подключение удачное';

$listMail = imap_search ($connect,"UNSEEN",SE_UID );

if (!empty($listMail)):
    foreach ($listMail as $idMail):
    $head = imap_header($connect,$idMail);
    $fetches = imap_fetchstructure ($connect,$idMail);
        if (count($fetches)>0) {
            foreach ($fetches->parts as $part=>$fetch) {
                echo '<pre>';
                print_r($fetch);
                echo '</pre>';

            }
        }

    endforeach;
else:
    echo 'Нет писем';
endif;


Пожалуйста, подскажите как получить имена на русском языке, либо перевести данную строку в нормальный вид.

Всем заранее спасибо! 
PM MAIL ICQ Skype   Вверх
AVA12
Дата 27.12.2013, 20:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 135
Регистрация: 4.5.2008

Репутация: 0
Всего: 4



Дык, тут же все очевидно из формата: строка в UTF-8 в виде quoted printable, завернутая в mime-кодированное слово. Если не хочется читать RFC, то просто скорми такую строку функции mb_decode_mimeheader() - и на выходе получишь исходную строку в рабочей кодировке.
PM ICQ Jabber   Вверх
Rusman
Дата 27.12.2013, 20:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 312
Регистрация: 4.5.2006
Где: Пермь

Репутация: нет
Всего: нет



AVA12, если использую функцию mb_decode_mimeheader, на выходе русские буквы в виде "????????????"
PM MAIL ICQ Skype   Вверх
AVA12
Дата 27.12.2013, 20:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 135
Регистрация: 4.5.2008

Репутация: 0
Всего: 4



Тебе префикс mb_ и словосочетание "рабочая кодировка" ни о чем не говорят?
PM ICQ Jabber   Вверх
Rusman
Дата 27.12.2013, 21:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 312
Регистрация: 4.5.2006
Где: Пермь

Репутация: нет
Всего: нет



AVA12, разобрался, большое спасибо!
PM MAIL ICQ Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0677 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.