下面的代码可以使用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/");
答案 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'];
}