Реализация RSS-читателей PHP - PullRequest
2 голосов
/ 07 октября 2011

Я пытаюсь создать канал RSS, я понятия не имею, как работают программы чтения RSS.

Вот моя проблема:

Читатели RSS "опрашивают" RSS-каналы, на которые они регулярно подписываются (каждые 15 минут и каждый день), верно?

Если я добавлю свой канал так:

для content.php:

<?php
  update_content();
  set_feed_content();
  set_feed_timestamp();
  store_feed_to_db();
?>

для rss.php:

<?php
  get_the_latest_feed_from_db();
  generate_valid_xml();
  output_feed();
?>

Тогда, если я опубликую feed A сейчас и опубликую feed B 16 минут спустя, читатели RSS, которые опрашивают каждые 15 минут, получат feed A и feed B, но читатели RSS, которые будут опрашивать с интервалом, превышающим этот, получат только feed B, верно? Итак, теперь вы видите, куда я иду.

Это то, что я думаю, решение будет

for rss.php:
<?php
  get_x_number_feeds_sorted_by_timestamps();
  generate_valid_xml();
  output_feeds();
?>

Так что теперь проблема для читателей RSS, которые слишком часто опрашивают, они будут получать один и тот же набор результатов снова и снова. Как читатели RSS справляются с этим? Они на самом деле проверяют содержимое канала и сравнивают его со своим «кэшем»? Разве это не пустая трата циклов? Или это действительно, как работают читатели RSS?

1 Ответ

1 голос
/ 07 октября 2011

Большинство RSS-лент включают что-то подобное:

<pubDate>Fri, 07 Oct 2011 09:14:56 +0000</pubDate>
<lastBuildDate>Fri, 07 Oct 2011 09:14:56 +0000</lastBuildDate>

Вы можете просто проверить это и ничего не делать, если ничего не изменилось.

lastBuildDate: время последнего изменения содержимого канала.
pubDate: дата публикации контента на канале.

-> http://cyber.law.harvard.edu/rss/rss.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...