получить канал RSS в массив php - возможный?

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

Я очень компетентен с php и mysql, но никогда не работал с RSS лентами прежде, где я должен запустить?

  1. существует ли эквивалент file_get_contents () для получения RSS в php?
  2. RSS ленты разломаны на xml/microdata, или я должен использовать regex для захвата битов?

удачи!

15
задан kovshenin 31 October 2010 в 14:14
поделиться

2 ответа

Краткая версия: (НОВИНКА)

демонстрация: 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;  
}  
?>
28
ответ дан 1 December 2019 в 02:29
поделиться

Я верю, что Simplepie сделает это и для вас.

0
ответ дан 1 December 2019 в 02:29
поделиться
Другие вопросы по тегам:

Похожие вопросы: