Парсинг RSS на PHP. Простой пример

Рубрика: Новости -> Скрипты -> php
Понедельник, 28 сентября 2009 г.
Просмотров: 6874
Подписаться на комментарии по RSS

В интернете много спрашивали про парсинг RSS на PHP. Так как этот вопрос

интересует многих, то я его решил немного изучить.

Вы все знаете про Яндекс-блоги. И знаете, что там можно подписаться на RSS

по любому запросу. Причем синтаксис

запросов (такой же, как к самому

Яндексу) предоставляет достаточно широкие возможности. Можно следить за

всем, что происходит в блогосфере.

Составляем запрос и визуально убеждаемся, что в результате запроса получаем валидный XML.

Внутри скрипта пишем:

<?
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;
   }
}
echo '<h1><font color="red">Конфузы блогосферы</font></h1>';
$url = 'http://blogs.yandex.ru/search.rss?text="наложил в штаны"';       //адрес RSS ленты
$rss = simplexml_load_file($url);       //Интерпретирует XML-файл в объект
//цикл для обхода всей RSS ленты
foreach ($rss->channel->item as $item) {
 echo '<a href="'.$item->link.'">';
        echo '<h2>'.utf8_convert($item->title,"w").'</h2>';  //выводим на печать заголовок статьи 
 echo '</a>';
        echo utf8_convert($item->description,"w");   //выводим на печать текст статьи
}
?>

Вот и все, любуемся результатом.

Если

вы хотите парсить "в накопительном режиме", то у записей достаточно

обрабатывать и сравнивать дату публикации pubDate. В зависимости от

этой даты — записывать или не записывать в базу.

источник

twitter.com facebook.com vkontakte.ru odnoklassniki.ru mail.ru ya.ru rutvit.ru myspace.com technorati.com digg.com friendfeed.com pikabu.ru blogger.com liveinternet.ru livejournal.ru memori.ru google.com bobrdobr.ru mister-wong.ru yahoo.com yandex.ru del.icio.us

Оставьте комментарий!

grin LOL cheese smile wink smirk rolleyes confused surprised big surprise tongue laugh tongue rolleye tongue wink raspberry blank stare long face ohh grrr gulp oh oh downer red face sick shut eye hmmm mad angry zipper kiss shock cool smile cool smirk cool grin cool hmm cool mad cool cheese vampire snake excaim question

Используйте нормальные имена. Ваш комментарий будет опубликован после проверки.

(войти без комментирования)

Имя и сайт используются только при регистрации

Если указать email (зарегистрироваться), то будет уведомление о новых комментариях.

Выберите человечка с поднятой рукой!