Сравнение ленты rss с записями в БД

Тема в разделе "PHP", создана пользователем xriby, 4 фев 2010.

Статус темы:
Закрыта.
Модераторы: latteo
  1. xriby

    xriby Создатель

    Регистр.:
    28 сен 2009
    Сообщения:
    23
    Симпатии:
    0
    Есть скрипт который получает рсс-ленту разбирает ее и заносит данные в таблицу БД MySQL url, title, desc, data и тд.
    Скрипт выполняется раз в 3 часа.
    Как лучше реализовать сравнение на наличие новых данных в полученной рсс-ленте?
    Если такие данные обнаружены поместить в массив, а затем в базу.
     
  2. Mongolor

    Mongolor

    Регистр.:
    5 дек 2007
    Сообщения:
    157
    Симпатии:
    29
    я бы из заголовка делал хеш, и при чтении рсс ленты сравнивал хеши рсс с БД и если нет, то пишем в БД
     
  3. bliss

    bliss Постоялец

    Регистр.:
    29 июн 2008
    Сообщения:
    72
    Симпатии:
    8
    подымаю тему, т.к. самому интересно.

    > я бы из заголовка делал хеш
    это только скажет о том, обновилась лента или нет. да и меняться по идее должен только modified-date, поэтому смысл делать хэш всего заголовка? мм.. это если речь идёт о хттп заголовках..

    а если о заголовке самого контента.. то.. так не делается. заголовки задаёт автор контента и они могут быть одинаковыми, даже если контент разный.

    хэш контента, разве что, получается. но что-то мне не очень по душе такое решение.
     
  4. nimnul

    nimnul Создатель

    Регистр.:
    24 мар 2008
    Сообщения:
    15
    Симпатии:
    4
    В спецификации RSS есть поле guid для определения уникальности записи, но, к сожалению, не все фиды его используют.
    Я бы наверное привязывался к pubDate, хотя хеш контента тоже неплохой вариант. А ещё лучше хеш title + description, или вообще сериализовать весь объект item и сделать хеш ;)
     
  5. xriby

    xriby Создатель

    Регистр.:
    28 сен 2009
    Сообщения:
    23
    Симпатии:
    0
    Во многих рсс-лентах guid совпадает с link, т.е. в качестве идентификатора уникальности записи выступает ссылка на полную новость.
    Думаю, буду использовать link для сравнения.
    Вопрос: есть ли смысл делать хеш linkа, когда можно использовать просто ссылку в качестве идентификатора уникальности?
     
Статус темы:
Закрыта.