2010-03-16 9 views
15

Ich möchte einen vorhandenen RSS-Feed von einer anderen Website mit PHP analysieren und dann bestimmte Teile davon in einer MySQL-Datenbank speichern.RSS-Feed in PHP-Array erhalten - möglich?

Ich bin sehr kompetent mit PHP und MySQL, aber habe noch nie mit RSS-Feeds gearbeitet, wo soll ich anfangen?

  1. gibt es ein Äquivalent zu file_get_contents() um rss in PHP zu bekommen?
  2. Sind RSS-Feeds in XML/Mikrodaten zerlegt oder muss ich Regex verwenden, um Bits zu greifen?

Prost!

Antwort

28

Kurzfassung: (NEW)

Demo:http://so.devilmaycode.it/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} 
       ) 

     ) 

) 

Lange Version: (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

cool, ich es versuchen werde. Ich habe das auch gefunden: http://magpierss.sourceforge.net/? – Haroldo

+0

+1 für vorschlagen DOM-Parsing für RSS-Analyse statt mit einer Bibliothek, obwohl es viele verschiedene Formate draußen gab das letzte Mal habe ich meinen eigenen RSS-Reader geschrieben. – Residuum

+0

Woah, seltsame Zitate, die du dort hast. Ich habe es für dich repariert. – Franz

0

Ich glaube, Simplepie wird dies auch für Sie tun.

Verwandte Themen