Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[18.219.98.26] |
|
Сообщ.
#1
,
|
|
|
Здравствуйте.
Подскажите пожайлуста, как я могу узнать кодировку письма. Посмотрел документацию, но что-то не понял. Спасибо. |
Сообщ.
#2
,
|
|
|
Цитата Astashov @ 29.11.04, 08:50 Здравствуйте. Подскажите пожайлуста, как я могу узнать кодировку письма. Посмотрел документацию, но что-то не понял. Спасибо. Кодировка письма указывается в теле письма, например: Цитата Content-Type: text/plain; charset=ISO-8859-1 |
Сообщ.
#3
,
|
|
|
а как ее можно вытащить? Просто для почтового клиента надо.
Ну или хотя бы как с помощью пхп распознать кодировку? А то у меня половина писем в кои а вторая в виндовс. |
Сообщ.
#4
,
|
|
|
Цитата Astashov @ 29.11.04, 12:57 а как ее можно вытащить? Просто для почтового клиента надо. Ну или хотя бы как с помощью пхп распознать кодировку? А то у меня половина писем в кои а вторая в виндовс. Ну, в PHP простым парсингом вытянуть можешь... А что у тебя за почтовый клиент такой, который автоматом кодировку не распознаёт ? |
Сообщ.
#5
,
|
|
|
Сам пишу. Вот просто думал, что есть стандартная имаповская комманда, которая выдает кодировку письма. Ладно. спасибо. придется парсингом
|
Сообщ.
#6
,
|
|
|
Цитата Astashov @ 29.11.04, 13:31 Сам пишу. Вот просто думал, что есть стандартная имаповская комманда, которая выдает кодировку письма. Ладно. спасибо. придется парсингом Блин, ты по-русски объясни в чём ты пишешь клиента ? Это почтовый www-клиент или что ? Если в PHP то только парсингом, если в Delphi или C++ то там с помощью соответствующей компоненты |
Сообщ.
#7
,
|
|
|
Я пишу на пхп и это будет почтовый www клиент.
|
Сообщ.
#8
,
|
|
|
К сожалению, специальной функции получения кодировки нет. Кроме того, imap_headerinfo(), который дает описание многих свойств письма, о типе и кодировке умалчивает. Поэтому придется парсить заголовки вручную, используя
Цитата string imap_fetchheader ( resource imap_stream, int msgno [, int options]) Регэкспы тебе в этом помогут |
Сообщ.
#9
,
|
|
|
Цитата Trustmaster @ 29.11.04, 15:29 Регэкспы тебе в этом помогут Спасибо, но нельзя ли поподробнее. А то я что-то не понял, какие-такие "Регэкспы" Просто я еще не силен в пхп. Занимаюсь им только когда поставлена определенная задача, и такое впервые делаю. Спасибо. |
Сообщ.
#10
,
|
|
|
Цитата Astashov @ 30.11.04, 07:15 Цитата Trustmaster @ 29.11.04, 15:29 Регэкспы тебе в этом помогут Спасибо, но нельзя ли поподробнее. А то я что-то не понял, какие-такие "Регэкспы" Просто я еще не силен в пхп. Занимаюсь им только когда поставлена определенная задача, и такое впервые делаю. Спасибо. Читаешь построчно письмо и проверяешь на наличие текста Content-Type: text/plain; charset="windows-1251". Точнее проверяешь соответствуют ли первые 12 символов строке Content-Type:. Если соответствуют, то дальше выдёргиваешь инфу о кодировке. |
Сообщ.
#11
,
|
|
|
Вообще-то, Content-Type может быть не только text/plain, поэтому-то я и предложил использовать регулярные выражения:
// $ct - строка, содежащая Content-Type eregi('charset=([a-zA-Z0-9\-_"]+)$', $ct, $regs); // $regs[1] содержит кодировку, но если есть кавычки, сначала нужно от них избавится $charset = str_replace('"', '', $regs[1]); // теперь $charset содержит кодировку |