1

我有一个这样的 foreach 循环:

$SimplePie->set_feed_url(array('links'));
$SimplePie->init();
$SimplePie->handle_content_type();
foreach ($SimplePie->get_items() as $item) {
    echo $item->get_image_url();
}

但我总是得到这个错误Call to undefined method SimplePie_Item::get_image_url()。同样的事情是,如果我尝试以 get_image 开头的任何其他方法...我打印出整个 $item 变量,我发现它里面有图像的 url,但我不知道我有什么问题' t 用这种方法获取 url。

我究竟做错了什么?

4

2 回答 2

3

该行末尾缺少分号。

echo $item->get_image_url() // need to close this line

echo $item->get_image_url();  // correct

除此之外,您使用的是哪个版本的 SimplePie?

编辑:经进一步调查,此功能适用于提要,而不是提要项目。所以你需要在你的项目循环中做的是:

$parent_feed = $item->get_feed();
$parent_feed->get_image_url();
于 2013-08-01T21:51:44.833 回答
2

在对 SimplePie 库进行了一些修改后,我发现它还不支持帖子的图像。从帖子中获取图像真的很容易,已经创建的功能get_item_tags()允许您浏览 SimplePie 的解析输出。所以这是获取所有图像的第一张图像(如果存在)的代码:

$image = $item->get_item_tags('', 'image')[0]['child']['']['url'][0]['data']; // manually getting the first image's url
if (isset($image)) // if exists
{
    echo $image; // do something with it
}

如果您想获得更多图像,只需放入$item->get_item_tags('', 'image')foreach 并取出链接。

希望SimplePie作者尽快实现这个标签的功能:)

于 2013-08-03T15:32:50.677 回答