|
|
|
|
|
для: BMW
(04.08.2008 в 15:28)
| | Кстати, там чтобы пробел в первом случае не потерялся, лучше сделать так:
<?php
function decode_header($header, $out_charset)
{
preg_match_all('/=\\?(.+?)\\?(.+?)\\?(.+?)((\\s)|\\?=|$)/', $header, $matches);
for($i = 0; $i < count($matches[0]); $i++)
{
switch( strtoupper($matches[2][$i]) )
{
case 'B': $matches[3][$i] = imap_base64($matches[3][$i]); break;
case 'QP': $matches[3][$i] = imap_qprint($matches[3][$i]); break;
default:
trigger_error('Unknown encoding: ' . $matches[2][$i]);
return false;
}
$matches[3][$i] .= $matches[5][$i];
if( strtoupper($matches[1][$i]) != strtoupper($out_charset) )
{
$matches[3][$i] = iconv($matches[1][$i], $out_charset . '//IGNORE', $matches[3][$i]);
}
}
return str_replace($matches[0], $matches[3], $header);
}
echo decode_header('=?KOI8-R?B?68/MzMXL1 =?GB2312?B?p7Gn4Kfpp+Sn0S =?KOI8-R?B?7tUg18/UIMXT3sUgzs/Xz8Ug0MnT2M3M?=', 'windows-1251');
?>
|
| |
|
|
|
|
|
|
|
для: BinLaden
(04.08.2008 в 15:25)
| | О!!!! пошло! Спасибочки)))) это помогло))!! | |
|
|
|
|
|
|
|
для: BMW
(04.08.2008 в 15:22)
| | > '/=\\?(.+?)\\?(.+?)\\?(.+?)(\\s|\\?=|$)/' | |
|
|
|
|
|
|
|
для: BinLaden
(04.08.2008 в 15:18)
| | Вот это он не смог прокодировать:
=?KOI8-R?B?7tUg18/UIMXT3sUgzs/Xz8Ug0MnT2M3M?=
|
| |
|
|
|
|
|
|
|
для: BMW
(04.08.2008 в 15:04)
| | Замените на
<?php
trigger_error('Unknown encoding: ' . $matches[2][$i]);
?>
|
И покажите. И вообще весь заголовок, если не трудно.
Это означает, что обнаружен неизвестный тип кодирования информации. Я вообще в этих делах почтовых не разбираюсь, поэтому строго не судите.
P.S. Да и паттерн надо поправить: '/=\\?(.+?)\\?(.+?)\\?(.+?)(\\s|\\?=|$)/' | |
|
|
|
|
|
|
|
для: BinLaden
(04.08.2008 в 14:11)
| | А если в некоротых местах выходит Аллах акбар??? что значит????? как в этом случае быть?? | |
|
|
|
|
|
|
|
для: BinLaden
(04.08.2008 в 14:11)
| | ОООО спасибо те дядюшка Бен)))...за то что в очередной раз помог капиталистическому концерну BMW))....и особенно, за Аллах Акбар))) | |
|
|
|
|
|
|
|
для: BMW
(04.08.2008 в 14:07)
| |
<?php
function decode_header($header, $out_charset)
{
preg_match_all('/=\\?(.+?)\\?(.+?)\\?(\\S+)/', $header, $matches);
for($i = 0; $i < count($matches[0]); $i++)
{
switch( strtoupper($matches[2][$i]) )
{
case 'B': $matches[3][$i] = imap_base64($matches[3][$i]); break;
case 'QP': $matches[3][$i] = imap_qprint($matches[3][$i]); break;
default:
trigger_error('Аллах акбар!'); // , E_USER_ERROR :))
return false;
}
if( strtoupper($matches[1][$i]) != strtoupper($out_charset) )
{
$matches[3][$i] = iconv($matches[1][$i], $out_charset . '//IGNORE', $matches[3][$i]);
}
}
return str_replace($matches[0], $matches[3], $header);
}
echo decode_header('1)29-May-2008 =?KOI8-R?B?68/MzMXL1 =?GB2312?B?p7Gn4Kfpp+Sn0S (4587 chars)', 'windows-1251');
?>
|
| |
|
|
|
|
|
|
| Как узнать в чем закодирована строчка:
1)29-May-2008 =?KOI8-R?B?68/MzMXL1 =?GB2312?B?p7Gn4Kfpp+Sn0S
|
И как ее перекодировать в русские символы как есть! | |
|
|
|
|