Раскодирование почты

WordPress позволяет настроить отправку записей в блог по электронной почте. Это несложно. Однако, возникли проблемы с русским текстом. Оказалось, мой мобильный отправляет русский текст закодированным в Base64, а WordPress почему-то не понимает и не умеет его раскодировать. В результате в блоге — мусор вместо русского текста.

Тогда я написал примитивный плагин, который решил для меня эту проблему: http://ru.oramezo.org/files/phdecode64.zip. Установка как обычно: скачать, распаковать, положить в wp-content/plugins и активировать с панели плагинов через Dashboard.

Если кому интересно, вот его исходный текст:

/*
Plugin Name: Base64 Phone Decoder
Plugin URI: http://ru.oramezo.org/files/phdecode64.zip
Description: Decodes base64 coded data sent via email
Version: 1.0
Author: Dmitri Brechalov
Author URI: http://oramezo.org
*/

function is_base64_encoded($data)
{
if (preg_match('%^[a-zA-Z0-9/+]*={0,2}$%', $data)) {
return TRUE;
} else {
return FALSE;
}
}

function base64_filter($content)
{
if (is_base64_encoded($content)) {
$decoded = base64_decode($content);
if ($decoded != FALSE) {
$content = $decoded;
}
}
return $content;
}

function base64_title($content)
{
if (substr($content, -1, 1) != '=') {
return $content;
} else {
$data = split('\?', $content);
}
return base64_filter($data[3]);
}

add_filter('phone_content', 'base64_filter');
add_filter('title_save_pre', 'base64_title');

One Comment

  1. кегув:

    1. ъ ж щ Н ы Я. М у Ю щ ь ъ М Ю р Л Я с з Д Н Ц Д Ю з ч Ю Ц Д Н я с
    Д Ю с у Ю э Е ч ж ъ Д ж Ю А Ю э Е А э ж я с Д Ю ч Ю р з щ Я
    2. я щ Ю т с М ы я А щ я Д з Д ж с я ы я Г Ц Д я ъe.

Leave a comment