[Помощь] RSS reader php

Тема в разделе "Как сделать...", создана пользователем IamWolf, 15 фев 2009.

Статус темы:
Закрыта.
  1. IamWolf

    IamWolf Постоялец

    Регистр.:
    24 фев 2008
    Сообщения:
    87
    Симпатии:
    138
    Доброго времени суток.:) Очень нужна помощь прогеров Nulled'а...

    Нужно на IPB выводить новости как тут http://www.ua24.net/ Вот скрипт http://www.ua24.net/rss_reader.php

    Вот хотелось бы его увидеть или работающий аналог. :ah: Прогуглил 3 страницы запросов "RSS reader php" толку 0....

    Нужен именно пхп ридер, так как с джавой проблему возникают. Помогите пожалуйста, уже горит :mad: такой скрипт, а как сделать, до сих пор не понимаю.:thenks:

    P.S. Скрипт больге не RSS, а парсит новости со страницы http://www.google.ru/news?hl=ru&ned=ru_ru&q=%D0%90%D0%B2%D1%82%D0%BE%D0%BC%D0%BE%D0%B1%D0%B8%D0%BB%D0%B8+%D0%B2+%D0%A0%D0%BE%D1%81%D1%81%D0%B8%D0%B8&ie=UTF-8

    НО от RSS нормального то же бы не отказался...

    P.S. Грабер на пхп с Lenta, к примеру, было бы то же шорошо
     
  2. KillDead

    KillDead

    Регистр.:
    11 авг 2006
    Сообщения:
    883
    Симпатии:
    540
  3. IamWolf

    IamWolf Постоялец

    Регистр.:
    24 фев 2008
    Сообщения:
    87
    Симпатии:
    138
    Вот с пхп вообще не дружу и столкнулся с этим:

    Проблемы с кодировкой

    RSS ленты как правило находятся в кодировке UTF-8, при парсинге русского текста тремя способами описанными выше, нам на экран выводятся кракозябры. Все потому, что тест к нам приходит в кодировке UTF-8. Для того что бы вывести нормальные РУССКИЕ буквы нужно перекодировать спарсеный текст из кодировки UTF-8 в Windows-1251. Для этих целей в PHP существует функция iconv(), но она доступна не на всех серверах и чтобы избежать дальнейших проблем с вашим RSS парсером советую использовать самописную функцию перекодировки. Вникать в тонкости кодировок и разбираться как из одной кодировки получается другая думаю вам не хочется, так же не хотелось и мне. Немного погуглив я нашел замечательную функцию перекодировки из UTF-8 в Windows-1251 и обратно, предоставляет ее некий товарищ E64F. Возможно конечно он тоже ее где-то слямзил, но это не так важно, важно то что она мне очень понравилась по сравнению с другими нагуглеными функциями. Выкладываю функцию и пример ее использования:

    Код:
    <?
    echo utf8_convert($str, "w");   //перекодирует $str из UTF-8 в Windows-1251 и выведет на экран
    
    function utf8_convert($str, $type)
    {
       static $conv = '';
       if (!is_array($conv))
       {
          $conv = array();
          for ($x=128; $x <= 143; $x++)
          {
             $conv['utf'][] = chr(209) . chr($x);
             $conv['win'][] = chr($x + 112);
          }
          for ($x=144; $x<= 191; $x++)
          {
             $conv['utf'][] = chr(208) . chr($x);
             $conv['win'][] = chr($x + 48);
          }
          $conv['utf'][] = chr(208) . chr(129);
          $conv['win'][] = chr(168);
          $conv['utf'][] = chr(209) . chr(145);
          $conv['win'][] = chr(184);
       }
       if ($type == 'w')
       {
          return str_replace($conv['utf'], $conv['win'], $str);
       }
       elseif ($type == 'u')
       {
          return str_replace($conv['win'], $conv['utf'], $str);
       }
       else
       {
          return $str;
       }
    }
    ?>
    Функция utf8_convert() принимает 2 параметра: $str – наша строка которую нужно перекодировать и $type – в какую кодировку нужно кодировать (“w” – из utf в win, “u” – из win в utf). Как это применить к нашим 3-м способам парсинга RSS думаю разберетесь, если хоть немного знаете PHP.


    Как сделать ?в отдельный файл и инклудить в грабер?
     
  4. KillDead

    KillDead

    Регистр.:
    11 авг 2006
    Сообщения:
    883
    Симпатии:
    540
    Без разницы. Главное, чтобы было и только 1 раз. Кстати можешь использовать функцию кодировки http://ru.php.net/manual/fr/function.iconv.php (если установлена)
     
Статус темы:
Закрыта.