0

下面的代码使用 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/");
4

2 回答 2

3

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

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

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

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

$images = $rss->channel->item[$i]->description->xpath('img');
if (count($images) > 0) {
    $image = $images['src'];
}
于 2013-01-05T02:54:31.087 回答
0

此页面上的解决方案对我有用:-

如何从 PHP 中的 tumlbr rss 提要中获取第一张图片

$image = '';
if (preg_match('/src="(.*?)"/', $rss->channel->item[$i]->description, $matches)) {
    $image = $matches[1];
}
于 2015-08-24T21:43:37.863 回答