RSS php diziye beslemek olsun - mümkün mü?

6 Cevap php

Ben php ile başka bir web sitesine varolan bir RSS beslemesi ayrıştırmak ve daha sonra bir mysql veritabanında bazı bölümlerini depolamak istiyor.

Ben daha önce yayınları, nerede başlar gerektiğini PHP ve MySQL ile çok yetkin değilim ama rss ile hiç çalışmamış?

  1. php içine rss almak için) (file_get_contents bir eşdeğer var mı?
  2. rss xml / mikro ayrılır beslemeleri veya i bit kapmak için regex kullanmak gerekiyor?

şerefe!

6 Cevap

Short Version: (YENİ)

demo: http://goo.gl/Xf30e

$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}
                )

        )

)

Long Version: (ESKİ)

<?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;  
}  
?>

Sen Zend Feed, bu ve daha istediğiniz her şeyi yapacağız istiyorum :)

Akla ilk şey SimpleXML olduğunu - http://www.ibm.com/developerworks/library/x-simplexml.html bakabilirsiniz.

Ancak, aseptik cevabı çok daha kolay görünüyor ve muhtemelen daha etkili olduğunu ... belki bunu görmezden gerekir!

I Simplepie sizin için de yapacak inanıyorum.

Diğerleri geçmiş geliyorsa, bu bir uçtan uca, çok basit ve ücretsiz bir kod örneği üzerinde;

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

PHP en iyi Yem tüketici kütüphane RSSClient [1]

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