PHP - обнаружение изменений во внешнем сайте, управляемом базой данных - PullRequest
2 голосов
/ 18 июня 2011

Для проекта домашней работы я создаю веб-сайт, управляемый PHP, основной функцией которого является сбор новостей о различных университетских курсах. Основная проблема заключается в следующем: (почти) каждый курс имеет свой собственный веб-сайт. Обычно это простой HTML или построенный с использованием некоторой простой бесплатной системы CMS. Будучи студентом, участвуя в 6-7 курсах, почти каждый день вы проходите 6-7 сайтов, проверяя, есть ли какие-либо новости. Идея проекта заключается в том, что вам не нужно этого делать, вместо этого вы просто проверяете сайт агрегации.

Моя идея заключается в следующем: каждый раз, когда студент входит в систему, просматривайте его список курсов. Для каждого курса получите его веб-сайт (рекурсивно, как с помощью wget) и создайте его хеш-значение. Если хеш отличается от того, который хранится в базе данных, мы знаем, что сайт изменился, и мы уведомляем студента.

Итак, как вы думаете, это разумный способ достижения функциональности? И если да, то какой (технически) лучший способ сделать это? Я проверял php_curl, но я не знаю, сможет ли он рекурсивно получить сайт.

Кроме того, есть небольшая проблема: у меня несколько ограниченные ресурсы, только несколько МБ квоты на общедоступном (университетском) сервере. Однако, если это большая проблема, я мог бы использовать отдельное решение для хостинга.

Спасибо :)

1 Ответ

1 голос
/ 18 июня 2011

Просто используйте file_get_contents или cURL , если вам абсолютно необходимо (на случай, если вам нужны КУКИ).

Вы можете использовать свой трюк хеширования для проверки изменений, но он не очень элегантен. То, что вы хотите знать, это когда последний раз изменилось . Я сомневаюсь, что эта информация есть на сайте, но, возможно, они предлагают RSS-канал или какой-либо веб-сервис или API, которые вы можете использовать для этой цели.

Не беспокойтесь о выполнении рекурсивных запросов. Просто делайте новый запрос каждый раз.

"Когда все остальное терпит неудачу, построить скребок"

...