关于PHP的RSS解析

前两天突然想研究下订阅/聚合程序,找了一些php的feed aggregator程序,像Lilina和Feedonfeeds,它们都是用的MagpieRSS库,这个库把rss解析成数组,可以方便的使用。然而最新的0.72版本也只支持rss0.9-1.0,对2.0和Atom没有支持(2.0仍然在它的todos里面)。我正在挣扎要不要自己改一个的时候,今天Milkliker告诉我Mixer里面就有用到MagpieRSS类,而且他改写过,支持2.0和Atom。是用来导入RSS的,这样blogger就可以方便的搬家了(以前我居然没注意过这功能)。

我找到它,修改了一下,恢复了link属性的获取(在Mixer中不需要这个属性,被unset了),做了个小程序放到服务器上试验,发现服务器上居然parse_w3cdtf()要出错,错误在gmmktime()上,说”:01″这种格式做为时间参数是非法的(但是在我自己机器上不会错),怎么会有这种差别呢,太灵异了。

用来做什么呢?我第一个想法就是把我经常看的blog聚合起来然後自己做一个好看的Template,这样就不再去挨个看望blogger们了(特别是有难看的skin的blog),让他们上门来见我吧!小明很快认为我这个想法变态,但是你们想,如果blogger们都这样,那情况就很有趣了,我们不再弄”模板”给别人看,而是给自己看,如果需要的话。现在rss的标准混乱得可怕,但可能的前景则相当动人,在不久的将来,我们也许不再需要发布blog,而只需要发布RSS(or Atom),发布和阅读都有统一的API,我们手边的工具不仅仅是显示模板,而是异常强大的应用程序,不管我们走到哪里,用谁的电脑还是手机。现在的桌面聚合工具与之相比,能做到的也就相当有限了。