【问题标题】:load all items from one Atom RSS feed从一个 Atom RSS 提要加载所有项目
【发布时间】:2012-10-14 22:12:01
【问题描述】:

我正在使用SimplePie,这让我很头疼。首先,让我解释一下我要做什么。 我正在为其创建网站的朋友已经有博客,其中的帖子并不多,我想从那里加载所有项目,解析它们并在标签正确时显示它们。当SimplePie 没有加载整个提要但限制为 25 时,问题就开始了。根据这个SO question,默认限制是 10,我还使用 Google Chrome 扩展程序检查了提要,在那里我获得了整个博客内容。澄清一下,这些项目没有被缓存(好吧,实际上它们是)但仍然存在于博客上,所以它们没有被删除,我也没有得到旧内容。 另外,我下载了 feed url 并在记事本中打开它,共有 25 个项目。

这是我的 init() 代码示例:

 require_once("php/autoloader.php");
 $feed=new SimplePie();
 $feed->set_feed_url("http://jadran303.blogspot.com/feeds/posts/default");
 $feed->enable_cache(false);
 $feed->init();
 $feed->handle_content_type();

这是我的代码,用于测试结果并查看我得到了什么(这不是生产版本):

$i=1;$j=1;$k=1;
foreach($feed->get_items() as $item):
 echo$k." ".$item->get_title()." - ".$item->get_date('j F Y, g:i a')."<br />";
 if($category=$item->get_category()){
  echo$j". ".$item->get_title()." - ".$category->get_label()." - ".$category->get_term()."<br />";
  if($category->get_label()=="Peugeot 406 Coupé na terenu"){
   echo" - $i ".$item->get_title()."<br />";
   $i++;
  }
  print_r($category);
  $j++;
 }
 $k++;
endforeach;

我的问题:

  • 如何强制 SimplePie 加载博客中的所有内容?我应该只是“foreach($feed->get_items(0,10000) as $item):”来加载所有内容并确保终生安全吗?
  • 还有其他更适合我需要的 Atom 解析器吗?欢迎任何建议。
  • 为什么我下载的默认文件中的内容是按标签排序的,标签是空的,但是term的关键字是对的?

感谢您的帮助。

【问题讨论】:

    标签: php atom-feed simplepie


    【解决方案1】:

    另外,我下载了 feed url 并在记事本中打开它,共有 25 个项目。

    这就是 SimplePie 无法加载更多项目的原因;那里没有给出任何东西。 SimplePie(或任何其他解析器)只能获取提要中的内容。

    如果您想要更多商品,您可以尝试使用 Google 的提要 API(它们使用来自 Google Reader 的缓存数据,因此它们应该拥有所有商品)。 (另一个答案实际上是不正确的,因为它不限于 10 个项目;这只是在 NewsBlocks 示例代码中。)或者,在网站上四处挖掘,看看你是否能找到一种方法来对提要进行分页。

    根据您在下面的评论,您应该能够将 ?max-results=1000 附加到任何 Blogger 供稿以获取 1000 个项目。这是 Blogger 特有的,但大多数网站都有类似的内容。

    【讨论】:

    • 有什么方法可以增加博客提要中的项目吗?我已经检查过了,似乎找不到任何选项。
    • 在对这个问题进行了一些研究后,我无意中发现了这个:jadran303.blogspot.com/feeds/posts/default?max-results=xx(注意结尾 ?max-results=xx)我替换了 xx 10000,现在它给我带来了整个博客内容。
    • 太棒了,我在答案中添加了这个。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-27
    • 1970-01-01
    • 2012-01-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多