Раскодирование почты
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');
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');
RSS
кегув:
1. ъ ж щ Н ы Я. М у Ю щ ь ъ М Ю р Л Я с з Д Н Ц Д Ю з ч Ю Ц Д Н я с
29 November 2008, 3:33 pmД Ю с у Ю э Е ч ж ъ Д ж Ю А Ю э Е А э ж я с Д Ю ч Ю р з щ Я
2. я щ Ю т с М ы я А щ я Д з Д ж с я ы я Г Ц Д я ъe.