当前位置: 首页 > 知识库问答 >
问题:

SimplePie:组合多个提要,但每个提要的项目数量不同

袁波
2023-03-14

我正在尝试使用SimplePie显示两个(目前,这个数字可能会增加)提要。我使用的是我认为SimplePie首选的多个提要的方式,而且它工作得很好——只要我对每个提要显示相同数量的项目感到满意。

但是,我希望能够灵活地告诉SimplePie显示两个组合提要的输出,但是从一个提要中获取10个项目(例如),从另一个提要中获取5个项目,以便组合输出偏向一个(更重要)来源。你认为最好的方法是什么?

这是我目前的代码。它使用多个feed对象,但如果这样更合理的话,我很乐意使用单个simplepi对象。

<?php
require_once('simplepie/autoloader.php');

// Create a new SimplePie object
$feed = new SimplePie();

$feed->set_feed_url(array(
    'http://example.com/feed1.rss',
    'http://example.com/feed2.rss'
));

$feed->set_item_limit(5);
$feed->init();
$feed->set_cache_location('/var/www/simplepie/library/cache');
$feed->set_cache_duration(600);
$feed->handle_content_type();

?>
<!doctype html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <title>Feed test</title>
</head>

<body>
    <?php
    // Begin feed output

    foreach ($feed->get_items() as $item):

        $authorObject = $item->get_author();
        $author = $authorObject->get_name();

        $feed = $item->get_feed();

        // Rest of the code removed
    ?>
</body>

共有1个答案

长孙知
2023-03-14

有一个函数来限制每个提要的项目数量:set_item_limit()

$feed->set_item_limit(5);

然而,这将从每个提要中提取相同数量的文章。你可以把它设置为10或者任何你想要的最大值。我能想到的唯一方法(在我的脑海中)做你想要的是在get_items循环中设置你自己的计数器,每次都通过检查提要数据中的一些东西,比如网址或其他东西。

$cntr1 = 0;
$cntr2 = 0;
foreach ($feed->get_items() as $item) {
    if ($cntr1 <= 5 && strstr($item->get_feed()->get_permalink(), [your search criteria])) {
        // do your fetch of the item stuff for feed 1
        $cntr1++;
    }
    ...
}
 类似资料:
  • 问题内容: 通常,您需要显示数据库项目的列表以及有关每个项目的特定汇总号。例如,当您在“堆栈溢出”中键入标题文本时,将出现“相关问题”列表。该列表显示了相关条目的标题以及每个标题的响应数量的单个汇总数量。 我有一个类似的问题,但需要多个聚合。我想根据用户选项以3种格式中的任何一种显示项目列表: 我的商品的名称(共15个,我拥有的13个) 我的商品的名称(共15个) 我的商品的名称(我拥有13个)

  • 我正在使用Simplepie从DB表获取rss提要。我试图在各自的div(例如,一个或多个不同的列)上显示这些提要,它们各自的项目数也来自一个DB。我有效地将每个提要视为SimplePie的一个单独实例。 我的问题是,我是否可以像在db中有rss提要一样实例化尽可能多的Simplepie对象实例(请参阅下面的概念验证代码)。这对我来说可以手动使用两个feed,但是我想知道一个用户是否有50个fee

  • 我的大脑正在融化。。。我正在努力实现以下目标: 我知道有多少个数组,每个数组有多少个元素。这些数字是动态的,但假设有:3个数组,每个数组中有18个元素。 例子: 现在我想得到所有三个数组的元素1的平均值,以及所有三个数组的元素2的平均值,以此类推。 最终结果应该是所有18个元素的平均值的一个数组。 比如: 如果3是固定的,这将起作用,但数组的数量是动态的。 希望这有意义...

  • 我正在尝试为我的组合框中的每个用户名(CreatedBy)添加工具提示,以防用户名对于组合框的宽度来说太长。 我知道这个问题已经被问了一百万次,我已经试过使用风格。触发器方法,我也试过ToolTip = " { Binding Path = SelectedCreatedBy。工具提示,relative source = { relative source Self } } 编辑:我找到了解决方案

  • 本文向大家介绍如何在R数据帧中提取两个或多个变量的唯一组合?,包括了如何在R数据帧中提取两个或多个变量的唯一组合?的使用技巧和注意事项,需要的朋友参考一下 R数据帧可以具有大量类别变量,并且这些类别形成不同的组合。例如,变量的一个值可以与另一个变量的两个或多个值链接。同样,一个类别变量可以具有所有唯一类别。我们可以根据需要找到尽可能多的变量,并且可以通过独特的功能来完成。 示例 请看以下数据帧-

  • 问题内容: 我有这样的目录/项目设置: Logger 是一个使用Gradle的Android库项目。 MyProject 是一个标准的Android项目项目,需要使用 Logger 库。 我正在使用Android Studio,并尝试将 Logger 添加到外部库中。尽管这在开发期间有效,但我收到有关在构建时找不到该类的消息。 我是Gradle的新手,但在 MyProject的 build.gra