2008-10-08 6 views
20

Мне нужно создать канал RSS/Atom в различных приложениях, и я хочу знать хорошую библиотеку или класс, способный производить оба, и которые уже обрабатывают все общие проблемы.Лучший PHP lib/class для генерации RSS/Atom

Например, тот, который я использовал в течение многих лет, не устанавливает правильный формат для даты, поэтому мой канал не обрабатывается несколькими агрегаторами.

Обновление: Почему я ищу библиотеку? Потому что тот, который я использовал в течение многих лет, который я взломал несколько раз, имеет небольшую проблему. Возможно, спецификация не выполняется правильно.

Why does my RSS feed duplicate some entries?

ответ

28

PHP Universal Feed Generator, кажется, именно то, что вам нужно - у него есть простой способ OO, объявляющий новый канал и выводящий его в требуемую спецификацию.

Он также имеет встроенные преобразования формата даты в качестве одного из его функций.

Особенности:

  • Генерирует RSS 1.0, RSS 2.0 и ATOM 1.0-ленты
  • Все фиды проверяются путем подачи валидатора.
  • Реализует соответствующие пространства имен для разных версий.
  • Автоматически конвертирует форматы даты.
  • Создает UUID для каналов ATOM.
  • Обрабатывает кодирование 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 Generator Generator - хороший ответ. Мне нужно было просто изменить код в соответствии с комментарием на веб-странице, чтобы обрабатывать правильные французские символы.

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 htmlentities: http://php.net/manual/en/function.htmlentities.php

Я только что добавили т. о поддержке хорватских кодовый:

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