我必须在各种应用程序中生成 RSS/Atom 提要,并且我想知道一个能够同时生成两者并且已经处理所有常见问题的好的库或类。
例如,我多年来使用的日期格式不正确,因此我的提要没有被几个聚合器很好地处理。
更新: 我为什么要找图书馆?因为我用了好几年的那个,我被黑了几次,有一个小问题。也许没有正确遵循规范。
我必须在各种应用程序中生成 RSS/Atom 提要,并且我想知道一个能够同时生成两者并且已经处理所有常见问题的好的库或类。
例如,我多年来使用的日期格式不正确,因此我的提要没有被几个聚合器很好地处理。
更新: 我为什么要找图书馆?因为我用了好几年的那个,我被黑了几次,有一个小问题。也许没有正确遵循规范。
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 Universal Feed Generator 是一个很好的答案。我只需根据网页上的评论修改代码以处理正确的法语字符。
就像 Kereste 所说(1. June)FeedWrite 对一些非英语 utf-8 字符(如 ä 等)产生了问题。这是因为 xml 只知道 5 个实体(&、”、'、)。所以我将源代码中的第 298 行更改为
$nodeText .= (in_array($tagName, $this->CDATAEncoding))? $tagContent : str_replace ( 数组 ( '&', '"', "'", ”), 数组 ('&' , '"', ''' , '<' , '>' ), $tagContent );
避免将字符转换为错误的 xml 实体。