2014-11-01 41 views
0

收集從RSS全部信息,我需要使用PHP如何使用PHP

標題,鏈接/ URL,描述和圖像顯示從RSS訂閱等信息

我已經做到了這一點下面的代碼,但我無法從進料提取圖片

我查了很多網站,但仍然還是未能解決這個問題

<?php 

$ch = curl_init("http://economico.sapo.pt/rss/ultimas"); 

curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
curl_setopt($ch, CURLOPT_HEADER, 0); 

$data = curl_exec($ch); 
curl_close($ch); 

$doc = new SimpleXmlElement($data); 
//print_r($doc); 

if(isset($doc->channel)) 
{ 
    parseRSS($doc); 
} 
if(isset($doc->entry)) 
{ 
    parseAtom($doc); 
} 

function parseRSS($xml) 
{ 


    // echo "<strong>".$xml->channel->title."</strong>"; 
    $cnt = count($xml->channel->item); 
    for($i=0; $i<$cnt; $i++) 
    { 
    $postdate = $xml->channel->item[$i]->pubDate; 
    //pubDate 



    $url = $xml->channel->item[$i]->link; 
    $title = $xml->channel->item[$i]->title; 
    $desc = $xml->channel->item[$i]->description; 

    echo $postdate."<br/>".'<a href="'.$url.'">'.$title.'</a><br/>'.$desc.'<br/>'; 

    } 
} 

function parseAtom($xml) 
{ 
    echo "<strong>".$xml->author->name."</strong>"; 
    $cnt = count($xml->entry); 
    for($i=0; $i<$cnt; $i++) 
    { 
    $urlAtt = $xml->entry->link[$i]->attributes(); 
    $url = $urlAtt['href']; 
    $title = $xml->entry->title; 
    $desc = strip_tags($xml->entry->content); 

    echo '<a href="'.$url.'">'.$title.'</a>'.$desc.''; 
    } 
} 


?> 

回答

1

你已經在使用->attributes()這個正確的軌道,關於命名空間的人,只需使用->children()。簡單的例子:

$url = 'http://economico.sapo.pt/rss/ultimas'; 
$rss = simplexml_load_file($url, null, LIBXML_NOCDATA); 

foreach($rss->channel->item as $item) { 
    $title = (string) $item->title; 
    $link = (string) $item->link; 
    $description = (string) $item->description; 
    $pubDate = (string) $item->pubDate; 

    $media_image_url = ''; 
    $media_title = ''; 
    $media = $item->children('media', 'http://search.yahoo.com/mrss/'); 
    if(isset($media->content)) { 
     $media_image_url = (string) $media->content->attributes()->url; 
     $media_title = (string) $media->content->title; 
    } 

    echo " 
     Title: $title <br/> 
     Link: $link <br/> 
     Description: $description <br/> 
     Pub Date: $pubDate <br/> 
     Image URL: $media_image_url <br/> 
     Media Title: $media_title <br/> 
     <hr/> 
    "; 
} 

Sample Output

+0

謝謝你的幫助,你的例子是爲我工作,現在我要修改我的script.thank你 – user3040570 2014-11-01 09:53:09

+0

@ user3040570高興幫 – Ghost 2014-11-01 10:00:09

+0

你幫我找到今天添加到rss的帖子? – user3040570 2014-11-01 11:21:46