Лучший PHP lib / класс для генерации RSS / Atom [закрыт]

StackOverflow https://stackoverflow.com/questions/182510

  •  06-07-2019
  •  | 
  •  

Вопрос

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

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

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

Почему моя RSS-лента дублирует некоторые записи?

Это было полезно?

Решение

Тот Самый Универсальный Генератор Фидов PHP кажется, это именно то, что вам нужно - у него есть простой, основанный на 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)
  • АТОМ 1.0

Другие советы

Вам действительно нужна библиотека?Выберите формат и просто следуйте его спецификации, чтобы вывести допустимый XML-файл.

Вот несколько руководств для начала.

Хммм, ИМО, если вам не нужны приложения, оба этих формата достаточно просты в создании без каких-либо классов.Например.для 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 - хороший ответ.Мне нужно было просто изменить код в соответствии с комментарием на веб-странице, чтобы корректно обрабатывать французские символы.

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

Как говорит Кересте (1.Июнь) FeedWrite создает проблемы с некоторыми неанглийскими символами символами utf-8, такими как ä и т.д..это происходит потому что xml знает только 5 объектов (&,”,’,).Поэтому я изменил строку 298 в исходном коде на

$nodeText .= (in_array($tagName, $this->CDATAEncoding))?$tagContent (Содержимое тега) :str_replace ( массив ( ‘&’, ‘”‘, “‘”, ” ), массив ( ‘&’ , ‘"’, ‘’ , ‘<’ , ‘>’ ), $tagContent);

чтобы избежать преобразования символов в неправильные XML-объекты.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top