RSS по русски на phpprobid
14.04.2011
Продолжим разговор о том, как заставить rss в phpprobid говорить по русски. Что характерно, изменения внесенные в файлы по статье Phpprobid настройка rss не приводят в некотором случае к полному отображению русского языка в отдаваемой ленте. Причина кроется в том, что скрипт работает в ‘ISO-8859-1′ по умолчанию, а обработка почему-то идет с привлечением энкодинка с utf-8.
Вероятно, скрипт разрабатывается с учетом возможности использования в настоящем или будущем кодировки utf-8. Но, в моем случае, мы так и не смогли заставить скрипт корректно работать с русским в кодировке utf-8, соответственно, когда файл rss пытается декодировать русские буквы для выдачи ленты через энкодинг utf-8 из данных записанных в кодировке windows-1251на выходе выдается в ленту или просто пустое место или крякозябры.
Чтобы Увидеть все в правильном свете, рекомендую попробовать внести следующие изменения в файле rss.php
$items['title'][] = utf8_convert(clean_string($row['name'])). ' - ' . $price;
$items['link'][] = utf8_encode(SITE_PATH . 'auction_details.php?auction_id=' . $row['auction_id']);
$items['desc'][] = utf8_convert(clean_string($row['description']));
$items['pubDate'][] = utf8_encode(date('Y-m-d', $row['postdate']) . 'T' . date('H:i:s', $row['postdate']) . $timezone);
$items['category'][] = utf8_convert(clean_string(implode(' : ', get_path($row['category_id']))));
$items['creator'][] = utf8_convert(ucfirst($row['username']));
меняем на
$items['title'][] = $row['name']. ' - ' . $price;
$items['link'][] = utf8_encode(SITE_PATH . 'auction_details.php?auction_id=' . $row['auction_id']);
$items['desc'][] = $row['description'];
$items['pubDate'][] = utf8_encode(date('Y-m-d', $row['postdate']) . 'T' . date('H:i:s', $row['postdate']) . $timezone);
$items['category'][] = implode(' : ', get_path($row['category_id']));
$items['creator'][] = $row['username'];
Во всяком случае, аналог этой записи вполне корректно работает на демо сайте и на двух основных сайтах на скрипте.
сделать для phpprobid 6?