关于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,我们手边的工具不仅仅是显示模板,而是异常强大的应用程序,不管我们走到哪里,用谁的电脑还是手机。现在的桌面聚合工具与之相比,能做到的也就相当有限了。

  • Dying

    PHP就是 page hate page的意思.
    RSS就是 really suck service的意思

    …………………………BT了,还有你的想法……

  • su27

    那我就do你的link吧 - -

  • 欧阳文泽

    小样。。。kiss一个。do  my link …
    http://www.hewking.org

  • su27

    PHP就是 page hate page的意思.
    RSS就是 really suck service的意思

  • 公孙欠扁

    搞些英文看都看不懂
    我老了

  • su27

    呵呵 你知道我想法从来比较科幻嘛。

  • milkliker

    实践告诉我们,这是行不通的….
    别问为什么,事实就是和理想有差距

  • su27

    嗯 不期访问确实需要界面。。。
    但是如果到时侯RSS有严格标准的话,为什么这个界面不能在搜索引擎上呢?现在搜索引擎搜到的结果页面不正是这样一个界面吗(只是很磋而已)。
    如果RSS足够严格,而且不但包含提要,也包含细节,那为什么搜索者还要访问个人的blog呢?搜索引擎就可以提供全部信息和界面。而且这个界面如果在本地,还将使得信息交换量达到最小。

  • milkliker

    你可以用变通的方式处理这个问题.
    PS: 发明RSS本来就是解决这个问题的. 但是模版和界面还是必要的,因为很多访问是来自搜索引擎的"不期"访问.访问者只是为了某一篇文章里提到的东西而来,不需要订阅整个blog.

  • su27

    to zb:哦!5.11真不智能。

    to xiaoming:……

  • 小明

    我觉得这个东西是很不错的
    让人觉得边台的是你当时的表达方式 = =

  • zengbo

    gmmktime()出错,应该是php版本问题。服务器用的是php5.11版本的。
    说明:
    int gmmktime ( [int hour [, int minute [, int second [, int month [, int day [, int year [, int is_dst]]]]]]] )

    注: 自 5.1.0 起,is_dst 参数被废弃。因此应该用新的时区处理特性。