Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.06.2012, 04:29   #1
VitaliyTokarev
Новичок
Джуниор
 
Регистрация: 11.06.2012
Сообщений: 3
Вопрос Разные кодировки при парсинге RSS, как сделать одну?

Сразу попрошу сильно не пинать.
PHP не знаю, знаю кучу других языков программирования.
Для меня он похож на С++.
Был сайт... Заброшенный... Решил его снова задействовать.
Я захотел вставить в свой сайт данные с блога на яндексе.
Для этого решил использовать RSS.
Так как просто так RSS не вставить, я решил, что пора свою страничку переделывать с HTML на PHP. Нашёл парсер RSS, сделал отдельный файл "PARSER.PHP" и добавил его вызов в страничку сайта.
Там были мелкие ошибки. Изучив матчасть и некоторые функции я их исправил и немного допилил парсер. Всё заработало, но ставка идёт в неправильной кодировке.
Я нашёл функцию iconv() и попробовал изменить кодировку с её помощью, но не получилось. Теперь данные для вывода не находятся. Что я делаю не так?

Функцию использую так: iconv("UTF-8", "WIN-1251", curl_exec($ch));

Текст парсера не влазит, вставлю файл...


Вызов функции iconv() в трёх местах я закомментировал.

Вызываю функцию:
PHP код:
<?PHP
$myRSS
->createHtmlFromFeed(0,5);
?>

При использовании iconv() вываливается сообщение:

"No news at present, please check back later."

Вот так мой сайт выглядит без использования iconv():
http://alexandrovich.info/
А вот так с использованием её:
http://alexandrovich.info/index2.php

Дальше мои знания не позволяют сделать более глубокий анализ, поэтому прошу помощи.
Вложения
Тип файла: txt parser.txt (4.8 Кб, 133 просмотров)
VitaliyTokarev вне форума Ответить с цитированием
Старый 11.06.2012, 15:51   #2
VitaliyTokarev
Новичок
Джуниор
 
Регистрация: 11.06.2012
Сообщений: 3
По умолчанию

Попробовал изменить процедуру, которая возвращает один блок RSS:

PHP код:
//<p class="feed_title">{$title}</p>
//<p class="feed_description">{$description}</p>
function FormatEntry($title$description$link) {
$title2 iconv("UTF-8""WIN-1251"$title);
$description2 iconv("UTF-8""WIN-1251"$description);
return <<<HTML
<p class="feed_title">{$title2}</p>
<p class="feed_description">
{$description2}</p>
<a class="feed_link" href="
{$link}" rel="nofollow" target="_blank">Читать...</a>
<p>&nbsp;</p>
<hr size=1>
HTML;



Теперь есть 5 записей, но они пустые:

Цитата:
Мой блог

Читать...


Читать...


Читать...
Вот образец:
http://alexandrovich.info/index3.php

Последний раз редактировалось VitaliyTokarev; 11.06.2012 в 15:58.
VitaliyTokarev вне форума Ответить с цитированием
Старый 11.06.2012, 16:26   #3
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

Попробуйте вместо WIN-1251 указать WINDOWS-1251.
Насчет UTF-8 во входящих данных вы уверены?
Здесь в первом комментарии описан способ определения кодировки при помощи mb_detect_encoding.
Andkorol вне форума Ответить с цитированием
Старый 11.06.2012, 20:58   #4
VitaliyTokarev
Новичок
Джуниор
 
Регистрация: 11.06.2012
Сообщений: 3
По умолчанию

О, спасибо!!!
Помогло.
VitaliyTokarev вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как сделать, чтобы разные таблицы имели одинаковую ширину столбцов? Natalie_M Microsoft Office Word 7 02.05.2018 10:49
[android]Русский текст при парсинге HTML Sna1L Общие вопросы по Java, Java SE, Kotlin 4 13.02.2012 14:05
Проблема при парсинге grafgrial Общие вопросы Delphi 0 15.11.2011 23:12
Как сделать так, чтобы в Debug и Release использовались разные ддл'ки? TwiX Visual C++ 7 08.11.2011 10:51
Как сделать одну из колонок DBGridEh недоступной? Vit@L Общие вопросы Delphi 11 11.01.2011 23:00