如何订阅RSS更新?


我现在订阅了一个新的RSS源, 我已经用PHP把文章解析完成, 但是,这个rss源是加载全部的文章进行显示的, 在下次他的网络文章有更新的时候.
1. 我如何只获取更新的文章?
2. 我如何知道他的网络文章更新了没有 ?

php rss

scream 10 years, 10 months ago

首先回答你第二个问题, 我如何知道他的网络文章更新了没有?

一般来说,对方新增的文章都是在上次更新文章之前,那么就可以记录上次解析rss时的文章id(如果无法获取id,获取url地址作为文章id也可以),然后通过判断第一篇的文章id是否是上次解析记录的id,如果不是,则认为有更新了,否则则认为没有更新。

我如何只获取更新的文章?

如果上面步骤判断文章有更新,则将rss解析成列表,遍历解析的列表,直到获取到和上次记录的文章id一致时停止,则之前的文章都是更新的。

更新: 可以通过使用正则查找替换,例如你用正则匹配到相同的文章id的部分,则从查找的位置替换为一个节点的关闭,举个例子:
假设的上次文章id为3,

   
  <rss>
  
<item>
<id>1</id>
</item>
<item>
<id>2</id>
</item>
<item>
<id>3</id>
</item>
<item>
<id>4</id>
</item>
<item>
<id>5</id>
</item>
</rss>

那么通过正则找

   
  <item>
  
<id>3</id>
</item>


找到之后,将后面的内容

   
  <item>
  
<id>3</id>
</item>
<item>
<id>4</id>
</item>
<item>
<id>5</id>
</item>
</rss>

替换成

   
  </rss>
 

则变成

   
  <rss>
  
<item>
<id>1</id>
</item>
<item>
<id>2</id>
</item>
</rss>

那么就可以认为是更新后的内容了

yzxdc answered 10 years, 10 months ago

Your Answer