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

Рубрика: Новости -> Скрипты -> php
Понедельник, 28 сентября 2009 г.
Просмотров: 1909
Подписаться на комментарии по 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. В зависимости от

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

источник

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

Не регистрировать/аноним

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

Если вы уже зарегистрированы как комментатор или хотите зарегистрироваться, укажите пароль и свой действующий email.
(При регистрации на указанный адрес придет письмо с кодом активации и ссылкой на ваш персональный аккаунт, где вы сможете изменить свои данные, включая адрес сайта, ник, описание, контакты и т.д.)



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

(обязательно)