2010-03-16 29 views
15

Tôi muốn phân tích cú pháp nguồn cấp dữ liệu RSS hiện có từ một trang web khác bằng php và sau đó lưu trữ một số phần nhất định của nó trong cơ sở dữ liệu mysql.nhận nguồn cấp dữ liệu RSS vào mảng php - có thể?

Tôi rất có thẩm quyền với php và mysql nhưng chưa bao giờ làm việc với nguồn cấp dữ liệu rss trước đây, tôi nên bắt đầu ở đâu?

  1. có tương đương với file_get_contents() để nhận được rss vào php không?
  2. là nguồn cấp dữ liệu rss được chia nhỏ thành xml/microdata hoặc tôi có cần sử dụng regex để lấy bit không?

cổ vũ!

Trả lời

28

Version viết tắt: (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} 
       ) 

     ) 

) 

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

mát mẻ, tôi sẽ cung cấp cho nó một thử. Tôi cũng tìm thấy điều này: http://magpierss.sourceforge.net/? – Haroldo

+0

+1 để đề xuất phân tích cú pháp DOM cho phân tích RSS thay vì sử dụng thư viện, mặc dù có nhiều định dạng khác nhau trong thời gian qua tôi đã viết trình đọc RSS của riêng mình. – Residuum

+0

Woah, báo giá kỳ lạ bạn đã có. Tôi cố định nó cho bạn. – Franz

0

Tôi tin rằng Simplepie cũng sẽ làm điều này cho bạn.

Các vấn đề liên quan