从RSS feed获取第一张图片(PHP CURL)

时间:2013-01-05 02:33:45

标签: php curl

下面的代码可以使用PHP CURL从RSS提要中提取数据,但是我似乎无法弄清楚如何从描述变量中获取图像URL。我只需要第一张图片。

Fatal error: Call to undefined method SimpleXMLElement::description() in      /home/feedolu/public_html/index.php on line 26 

    Function feedMe($feed) {
// Use cURL to fetch text
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $feed);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt ($ch, CURLOPT_USERAGENT, $useragent);
$rss = curl_exec($ch);
curl_close($ch);

// Manipulate string into object
$rss = simplexml_load_string($rss);

$siteTitle = $rss->channel->title;
echo "<h1>".$siteTitle."</h1>";
echo "<hr />";

$cnt = count($rss->channel->item);

for($i=0; $i<$cnt; $i++)
{
    $url = $rss->channel->item[$i]->link;
    $title = $rss->channel->item[$i]->title;
    $desc = $rss->channel->item[$i]->description;
    $image = $rss->channel->item[$i]->description('img', 0);
    echo '<h3><a href="'.$url.'">'.$title.'</a></h3>'.$desc.'';
    echo $image;
}
}

 feedMe("localhost/feed/");

1 个答案:

答案 0 :(得分:3)

问题与此链接有关,显然:

$image = $rss->channel->item[$i]->description('img', 0);

SimpleXML类的上下文中,description是属性,而不是函数。使用xpath()功能查找所有<img />可以快速解决问题。

因此,根据您的代码,我将获得您正在寻找的价值(即使我不认为您的实施是最好的):

$images = $rss->channel->item[$i]->description->xpath('img');
if (count($images) > 0) {
    $image = $images['src'];
}