получить RSS поток в массив php - возможно? - PullRequest
15 голосов
/ 16 марта 2010

Я хочу проанализировать существующий RSS-канал с другого веб-сайта с помощью php, а затем сохранить определенные его части в базе данных mysql.

Я очень хорошо разбираюсь в php и mysql, но никогда раньше не работал с RSS-лентами, с чего мне начать?

  1. есть ли эквивалент file_get_contents () для получения rss в php?
  2. разбиты ли RSS-потоки на XML / микроданные или мне нужно использовать регулярные выражения для захвата битов?

ура!

Ответы [ 4 ]

28 голосов
/ 16 марта 2010

Короткая версия: (NEW)

демо: http://so.lucafilosofi.com/get-rss-feed-into-php-array-possible/

$feed = 'http://stackoverflow.com/opensearch.xml';
$feed_to_array = (array) simplexml_load_file($feed);
//OR $feed_to_array = (array) new SimpleXmlElement( file_get_contents($feed) );
print_r($feed_to_array);

//output

Array
(
    [ShortName] => Stack Overflow
    [Description] => Search Stack Overflow: Q&A for professional and enthusiast programmers
    [InputEncoding] => UTF-8
    [Image] => http://sstatic.net/stackoverflow/img/favicon.ico
    [Url] => SimpleXMLElement Object
        (
            [@attributes] => Array
                (
                    [type] => text/html
                    [method] => get
                    [template] => http://stackoverflow.com/search?q={searchTerms}
                )

        )

)

Длинная версия: (OLD)

<?php

$rss_tags = array(  
'title',  
'link',  
'guid',  
'comments',  
'description',  
'pubDate',  
'category',  
);  
$rss_item_tag = 'item';  
$rss_url = 'http://www.webaddict.info/feeds/news.xml';

$rssfeed = rss_to_array($rss_item_tag, $rss_tags, $rss_url);

echo '<pre>';  
print_r($rssfeed);

function rss_to_array($tag, $array, $url) {  
  $doc = new DOMdocument();  
  $doc->load($url);  
  $rss_array = array();  
  $items = array();  
  foreach($doc-> getElementsByTagName($tag) AS $node) {  
    foreach($array AS $key => $value) {  
      $items[$value] = $node->getElementsByTagName($value)->item(0)->nodeValue;  
    }  
    array_push($rss_array, $items);  
  }  
  return $rss_array;  
}  
?>
0 голосов
/ 26 августа 2013

Лучшая библиотека потребителя Feed в PHP - RSSClient [1]

[1] https://github.com/desarrolla2/RSSClient

0 голосов
/ 31 октября 2010

Если другие пройдут мимо, включится сквозной очень простой бесплатный пример кода;

http://code.google.com/p/rssingest/

0 голосов
/ 16 марта 2010

Полагаю, Simplepie сделает это и для вас.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...