2008-10-08 35 views
20

我必须在各种应用程序中生成一个RSS/Atom提要,并且我想知道一个好的库或类,它能够生成两者,并且已经处理所有常见问题。用于生成RSS/Atom的最佳PHP库/类

例如,我多年来使用的日期格式不符合日期,因此我的订阅源不能很好地处理几个聚合器。

更新: 为什么我要找图书馆?因为我多年来使用过的那个我曾经入侵过几次的那个,有一点问题。也许规范没有被正确遵循。

Why does my RSS feed duplicate some entries?

回答

28

PHP Universal Feed Generator似乎正是你所追求的 - 它有一个简单的,基于OO的方式来声明一个新的饲料和输出到您所需的规格。

它还具有内置的日期格式转换作为其功能之一。

特点:

  • 生成RSS 1.0,RSS 2.0和1.0 ATOM馈送
  • 所有进料由进料验证器验证。
  • 为不同版本实现适当的命名空间。
  • 自动转换日期格式。
  • 为ATOM订阅源生成UUID。
  • 处理所需标记的CDATA编码。

支持的版本:

  • RSS 1.0(其正式过时RSS 0.90)
  • RSS 2.0(其正式过时RSS 0.91,0.92,0.93和0.94)
  • ATOM 1.0
+2

如果您有兴趣让图书馆生成W3C标准化的RSS1/2和Atom订阅源,我为它写了一个补丁:http://sites.google.com/site/danchurchinc/software-patches – amphetamachine 2010-04-06 12:37:19

+0

ajaxray.com目前处于离线状态,但[该软件包可能通过phpclasses.org下载](http://www.phpclasses.org/package/4427-PHP-Generate-feeds-in- RSS-1-0-2-0-的原子基formats.html)。 – feeela 2011-10-21 10:42:39

4

你真的需要一个图书馆吗?选择格式并简单地按照其规范输出有效的XML。

Here is some tutorial要开始。

3

嗯,国际海事组织,除非你想要外壳,这两种格式都很容易制作而没有任何课程。例如。对于我管理的网站的RSS源,我只是写了一个小型的Smarty模板,并且工作非常顺利。

1

PHP通用饲料生成器是一个很好的答案。我只是修改相应的代码,在网页上发表评论以处理正确的法文字符。

http://www.ajaxray.com/blog/2008/03/08/php-universal-feed-generator-supports-rss-10-rss-20-and-atom/#comment-341

像Kereste说(1月)FeedWrite 使得一些没有英语 UTF-8字符像等问题..这是 ,因为xml只知道5个实体 (&,“,',)。所以我在 源代码中将第298行改为

$ nodeText。=(in_array($ tagName, $ this-> CDATAEncoding))? $ tagContent: str_replace函数(阵列( '&',“ '”,“'”,” ),阵列( '&', '“', ''”, '<', '>' ),$ tagContent );

到avoiod转换成charakters错 XML实体

3

非英语字符集来看看PHP函数ヶ辆: http://php.net/manual/en/function.htmlentities.php

我刚刚加入吨。 o支持克罗地亚字符集:

$nodeText .= (in_array($tagName, $this->CDATAEncoding))? $tagContent : htmlentities($tagContent, ENT_COMPAT, 'UTF-8');