0

这是我的问题。我正在使用 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 实例,但似乎没有什么可以避免在第二轮中合并两个提要。

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

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

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

4

1 回答 1

0

将您的第二个提要称为 $feed 以外的其他内容,也许在我的主页上我会在头脑中这样做:

<?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 人,我什至不假装自己是 Stack Overflow 上的人。显然,变量在 PHP 中的作用域不仅仅是一个代码块,但我永远不确定变量保持设置多长时间。你似乎急于 unset() 你的。

于 2013-03-12T02:23:36.043 回答