На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
Модераторы: ALXR
  
    > Imap & Charset
      Здравствуйте.
      Подскажите пожайлуста, как я могу узнать кодировку письма. Посмотрел документацию, но что-то не понял.
      Спасибо.
        Цитата Astashov @ 29.11.04, 08:50
        Здравствуйте.
        Подскажите пожайлуста, как я могу узнать кодировку письма. Посмотрел документацию, но что-то не понял.
        Спасибо.

        Кодировка письма указывается в теле письма, например:
        Цитата
        Content-Type: text/plain; charset=ISO-8859-1
          а как ее можно вытащить? Просто для почтового клиента надо.
          Ну или хотя бы как с помощью пхп распознать кодировку? А то у меня половина писем в кои а вторая в виндовс.
            Цитата Astashov @ 29.11.04, 12:57
            а как ее можно вытащить? Просто для почтового клиента надо.
            Ну или хотя бы как с помощью пхп распознать кодировку? А то у меня половина писем в кои а вторая в виндовс.

            Ну, в PHP простым парсингом вытянуть можешь... А что у тебя за почтовый клиент такой, который автоматом кодировку не распознаёт ?
              Сам пишу. Вот просто думал, что есть стандартная имаповская комманда, которая выдает кодировку письма. Ладно. спасибо. придется парсингом
                Цитата Astashov @ 29.11.04, 13:31
                Сам пишу. Вот просто думал, что есть стандартная имаповская комманда, которая выдает кодировку письма. Ладно. спасибо. придется парсингом

                Блин, ты по-русски объясни в чём ты пишешь клиента ? Это почтовый www-клиент или что ? Если в PHP то только парсингом, если в Delphi или C++ то там с помощью соответствующей компоненты :yes:
                  Я пишу на пхп и это будет почтовый www клиент.
                    К сожалению, специальной функции получения кодировки нет. Кроме того, imap_headerinfo(), который дает описание многих свойств письма, о типе и кодировке умалчивает. Поэтому придется парсить заголовки вручную, используя
                    Цитата
                    string imap_fetchheader ( resource imap_stream, int msgno [, int options])

                    Регэкспы тебе в этом помогут ;)
                      Цитата Trustmaster @ 29.11.04, 15:29
                      Регэкспы тебе в этом помогут ;)

                      Спасибо, но нельзя ли поподробнее. А то я что-то не понял, какие-такие "Регэкспы" :unsure:
                      Просто я еще не силен в пхп. Занимаюсь им только когда поставлена определенная задача, и такое впервые делаю. Спасибо.
                        Цитата Astashov @ 30.11.04, 07:15
                        Цитата Trustmaster @ 29.11.04, 15:29
                        Регэкспы тебе в этом помогут ;)

                        Спасибо, но нельзя ли поподробнее. А то я что-то не понял, какие-такие "Регэкспы" :unsure:
                        Просто я еще не силен в пхп. Занимаюсь им только когда поставлена определенная задача, и такое впервые делаю. Спасибо.

                        Читаешь построчно письмо и проверяешь на наличие текста Content-Type: text/plain; charset="windows-1251". Точнее проверяешь соответствуют ли первые 12 символов строке Content-Type:. Если соответствуют, то дальше выдёргиваешь инфу о кодировке. :whistle:
                          Вообще-то, Content-Type может быть не только text/plain, поэтому-то я и предложил использовать регулярные выражения:
                          ExpandedWrap disabled
                            // $ct - строка, содежащая Content-Type
                            eregi('charset=([a-zA-Z0-9\-_"]+)$', $ct, $regs);
                            // $regs[1] содержит кодировку, но если есть кавычки, сначала нужно от них избавится
                            $charset = str_replace('"', '', $regs[1]);
                            // теперь $charset содержит кодировку
                          1 пользователей читают эту тему (1 гостей и 0 скрытых пользователей)
                          0 пользователей:


                          Рейтинг@Mail.ru
                          [ Script execution time: 0,0246 ]   [ 14 queries used ]   [ Generated: 18.05.24, 07:19 GMT ]