过去几天我一直在使用 SimplePie 做很多工作,我注意到它并不总是以相同的方式对待 Blogger 提要。如果我像这样http://davetaylorminiatures.blogspot.com/或http://sippinonpaintwater.blogspot.com/feeds/posts/default?alt=rss将Blogger 提要传递给 SimplePie ,它会显示得很好,但是当我将一组有效的提要传递给 SimplePie,其中一些来自 blogspot,一些不是来自 blogspot,则不会返回任何 blogspot 项目。如果我让它发现提要或传递指定 RSS 的提要似乎并不重要。
如果 Blogger 博客使用 FeedBurner 作为其提要,那么这将起作用,例如此示例http://feeds.feedburner.com/FromTheWarp SimplePie 将在合并提要中包含来自“From the Warp”的 blogspot 托管博客中的项目,其中的数据来自其他有效的提要。
我一直在进行大量的提要合并,起初我认为这与发布日期或本地提要缓存有关,但我已经炸毁了本地缓存文件并运行了许多测试。
一个 blogspot 提要适用于 SimplePie,传递一系列提要,并且 blogspot 提要似乎被忽略了,它们似乎也没有在本地缓存。既然我知道单个提要在提要阅读器甚至 SimplePie News Blocks 2 基于演示的代码中工作,为什么当我将它们传递到数组中时它不起作用?这是 SimplePie 或 Blogger 中的错误,还是我遗漏了一些明显的东西。
我编写了以下代码来测试和演示这种行为,我相信在运行之前不缓存提要很重要。
<?php
require_once('./php/simplepie.inc');
$feed1 = new SimplePie(); // For this test I want four seperate feeds
$feed2 = new SimplePie();
$feed3 = new SimplePie();
$feed4 = new SimplePie();
$feed5 = new SimplePie(); // Fetching the feeds before merging seems to matter with Blogger feeds!
echo "Blogger Feed One http://davetaylorminiatures.blogspot.com/ \n";
echo "---------------------------------------------------------- \n";
$feed1->set_feed_url('http://davetaylorminiatures.blogspot.com/');
$feed1->init();
foreach ($feed1->get_items() as $item)
{
echo $item->get_title();
echo "\n";
}
echo "\n";
echo "Blogger Feed Two http://sippinonpaintwater.blogspot.com/feeds/posts/default?alt=rss \n";
echo "----------------------------------------------------------------------------------- \n";
$feed2->set_feed_url('http://sippinonpaintwater.blogspot.com/feeds/posts/default?alt=rss');
$feed2->init();
foreach ($feed2->get_items() as $item)
{
echo $item->get_title();
echo "\n";
}
echo "\n";
echo "Non-Blogger Feed http://www.witchhunter.net/blog/ \n";
echo "------------------------------------------------- \n";
$feed3->set_feed_url('http://www.witchhunter.net/blog/');
$feed3->init();
foreach ($feed3->get_items() as $item)
{
echo $item->get_title();
echo "\n";
}
echo "\n";
echo "Merged Feeds Test \n";
$feed4->set_feed_url(array('http://davetaylorminiatures.blogspot.com/',
'http://sippinonpaintwater.blogspot.com/feeds/posts/default?alt=rss',
'http://www.witchhunter.net/blog/'));
$feed4->init();
echo "Merged Feeds Item Titles \n";
echo "------------------------ \n";
foreach ($feed4->get_items() as $item)
{
echo $item->get_title();
echo "\n";
}
echo "\n";
echo "Same Merged Feeds Item and Feed Title \n";
echo "------------------------------------- \n";
foreach ($feed4->get_items() as $item)
{
echo "\n";
echo $item->get_title();
echo "\n";
echo "From feed: ";
echo $item->get_feed()->get_title();
echo "\n";
}
echo "\n";
echo "Merged Feeds Test, different set of Three Feeds \n";
$feed5->set_feed_url(file('testFeeds.txt'));
$feed5->init();
echo "Merged Feeds Item Titles \n";
echo "------------------------ \n";
foreach ($feed5->get_items() as $item)
{
echo $item->get_title();
echo "\n";
}
echo "\n";
echo "Same Merged Feeds Item and Feed Title \n";
echo "------------------------------------- \n";
foreach ($feed5->get_items() as $item)
{
echo "\n";
echo $item->get_title();
echo "\n";
echo "From feed: ";
echo $item->get_feed()->get_title();
echo "\n";
}
?>
testFeeds.txt 的内容是:
http://cursedtreasures.blogspot.com/
http://sidneyroundwood.blogspot.com/feeds/posts/default?alt=rss
http://feeds.feedburner.com/ChestOfColors
我想看看将提要放在外部文件中是否重要,因为这是我更喜欢获取多个提要的方式。$feed5 的输出是奇怪的地方,它在第一次运行时只会返回 Chest of Colors 的结果。一旦提要开始被缓存,或者如果您先单独获取提要,这似乎很重要。这是刚才 $feed5 的输出:
合并 Feed 测试,不同的一组三个 Feed
合并的提要项目标题
刷子评论:Winsor Newton 系列 7 vs Rosemary and Co NMM 黄金制作快速简单 5th Chest of Colors Miniature Exchange 摘要 Warploque Miniatures:Jebzakkah B'Ork – 本月回顾微缩模型:2012 年 1 月字里行间 – 第 5 集金恶魔 2011: Clash of Slayer Sword 获奖者游戏研讨会:FineCast Jabberslythe – 回顾本月缩影:2011 年 12 月罗密欧模型:Jean Bart – 回顾
相同的合并提要项目和提要标题
画笔评论:Winsor Newton 系列 7 vs Rosemary and Co 来自提要:Chest of Colours - 所有关于微型画
NMM 黄金从提要中快速轻松地制作:色彩箱 - 所有关于微型绘画
第五届彩色微型画交换摘要来自提要:彩色胸部-关于微型绘画的一切
Warploque Miniatures: Jebzakkah B'Ork – 来自提要的评论:Chest of Colours - 所有关于微型画
本月缩影:2012 年 1 月 来自提要:Chest of Colours - 所有关于缩影
字里行间——第 5 集来自提要:色彩的宝箱——关于微型画的一切
Golden Demons 2011:Clash of Slayer Sword 获胜者来自提要:Chest of Colours - 所有关于微型画
游戏工作坊:FineCast Jabberslythe – 来自 feed 的评论:Chest of Colours - 所有关于微型画
本月缩影:2011 年 12 月 来自提要:Chest of Colours - 所有关于缩影
Romeo Models: Jean Bart – 来自 feed 的评论:Chest of Colours - 所有关于微型画
除了在尝试合并之前是否已经单独获取和缓存 Blogger 提要这一显而易见的事情之外,关于正在发生的事情的任何想法?测试脚本在这里启动并运行