生成RSS/Atom的最佳PHP lib/类


The best PHP lib/class to generate RSS/Atom

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

例如,我使用了多年的一个没有正确的日期格式,所以我的订阅源没有被几个聚合器很好地处理。

更新:我为什么要找图书馆?因为我用了很多年的那个,我已经黑了好几次,有一个小问题。也许没有正确遵循规范。

为什么我的RSS源重复了一些条目?

PHP通用提要生成器似乎正是您所追求的——它有一种简单的、基于OO的方法来声明新提要并将其输出到您想要的规范。

它还具有内置的日期格式转换功能。

特点:

  • 生成RSS 1.0、RSS 2.0和ATOM 1.0提要
  • 所有提要都由提要验证器进行验证
  • 为不同的版本实现适当的命名空间
  • 自动转换日期格式
  • 为ATOM源生成UUID
  • 处理所需标记的CDATA编码

支持的版本:

  • RSS 1.0(正式取代RSS 0.90)
  • RSS 2.0(正式废除了RSS 0.91、0.92、0.93和0.94)
  • 原子1.0

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

下面是一些入门教程。

嗯,IMO,除非你想要外壳,否则这两种格式都很容易在没有任何类的情况下制作。例如,对于我管理的网站的RSS提要,我只写了一个小的Smarty模板,它运行得很顺利。

对于非英语字符集,请查看PHP函数htmlentities:http://php.net/manual/en/function.htmlentities.php

我刚刚添加了支持克罗地亚字符集:

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

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个实体(&,",',)。所以我在的源代码

$nodeText.=(in_array($tagName,$this->CDATAEncoding)$标签内容:str_replace(数组('&','"',"'","),数组('&','"',''','<','>'),$tagContent);

避免将字符转换为错误的xml实体。