避免使用Simplepie合并/组合多个提要


Avoid merging/combining multiple feeds with Simplepie?

我的问题是。我使用Simplepie来获取rss提要。在同一页面上,我试图显示两个rss源(例如在两个不同的列)。这两个提要来自同一个域(但我不认为这是一个问题,即domain.com/feed1, domain.com/anotherfeed)。

我的问题是Simplepie 不断合并提要。因此,在第一列中,我正确地看到了第一个提要,但第二列是我的两个提要的组合版本——这不是我的意图。

我是这样做的:

$feed = new SimplePie();
$feed->set_feed_url($url1);
$feed->init();          
$rss = $feed->get_items();
$feed->__destruct(); // Do what PHP should be doing on it's own.
unset($feed); 
$feed = new SimplePie();
$feed->set_feed_url($url2);
$feed->init();          
$rss = $feed->get_items();
$feed->__destruct(); // Do what PHP should be doing on it's own.
unset($feed); 

最后两行试图摆脱第一个$feed实例,但似乎没有什么能够避免在第二轮合并两个提要。

起初,我认为这与缓存问题有关,但是禁用缓存并没有帮助。

搜索社区似乎没有给我任何答案-所以出于某种原因,我独自面对这个问题。这告诉我,我基本上遗漏了一些东西?基本上它会很高兴知道我如何才能真正杀死第一个提要,所以它不会合并到第二个?

我真的希望我已经提供了足够的信息让你们能够回答。如果没有,那么我很抱歉,我会尽力更新这个问题。

将第二个feed命名为$feed以外的名称,这应该无关紧要也许在我的主页上,我在header中这样做:

<?php 
include_once './news/php/autoloader.php'; 
$muskblogFeed = new SimplePie();
$muskblogFeed->set_feed_url('http://blog.muschamp.ca/feed/');
$muskblogFeed->init();
$quotationFeed = new SimplePie();
$quotationFeed->set_feed_url('http://quotations.muschamp.ca/qotdFeed.php');
$quotationFeed->init();
$miniatureFeed = new SimplePie();
$miniatureFeed->set_feed_url('http://musksminiatures.wordpress.com/feed/');
$miniatureFeed->init();
?>

然后在正文中显示提要,我这样写:

    <h3>My Quotation of the Day <a href="<?php print $quotationFeed->subscribe_url(); ?>"><img src="CommonImages/SocialMediaIcons/rss_16.png" class="rss16" /></a></h3>
    <?php foreach ($quotationFeed->get_items(0, 1) as $item): ?>
            <?php print('<blockquote id="quotation">' . $item->get_content() . '<br/><a href="' . $item->get_permalink() . '" style="float: right; padding-top: 2px; margin-top: 5px;">' . $item->get_title() . '</a></blockquote>'); ?>
    <?php endforeach; ?>
    <br />
    <h3>Now on Muskblog <a href="<?php print $muskblogFeed->subscribe_url(); ?>"><img src="CommonImages/SocialMediaIcons/rss_16.png" class="rss16" /></a></h3>
    <ul>
    <?php foreach ($muskblogFeed->get_items(0, 3) as $item): ?>
        <li>
            <a href="<?php print $item->get_permalink(); ?>">
            <?php print $item->get_title(); ?></a>
        </li>
    <?php endforeach; ?>
    </ul>
    <h3>Now on Musk's Miniatures <a href="<?php print $miniatureFeed->subscribe_url(); ?>"><img src="CommonImages/SocialMediaIcons/rss_16.png" class="rss16" /></a></h3>
    <ul>
    <?php foreach ($miniatureFeed->get_items(0, 3) as $item): ?>
        <li>
            <a href="<?php print $item->get_permalink(); ?>">
            <?php print $item->get_title(); ?></a>
        </li>
    <?php endforeach; ?>
    </ul>

上面的工作很好,也许你需要把工作分解成头部和身体,我不是一个PHP的家伙,我甚至不假装是一个堆栈溢出。显然,在PHP中,变量的作用域比单个代码块要长,但我不确定变量的设置时间有多长。