Нужна программка/тест, выцепляющая ошибки на портале
.
Ну самый простой вариант: чек 404 линков.
Алгоритм функции примерно такой - псевдоязык
функция выцеплялка404линков
{Заходим на страничку, выцепляем с неё все линки.
цикл (для каждого линка)
проверяем линк на 404
Если линк битый, добавляем его в отчёт
Если линк внутренний
Рекурсивный вызов выцеплялка404линков();
}
Проблема состоит в том, что на любой страничке портала есть ссылки и на другие страницы, например родительскую.
Таким образом мой алгоритм сейчас работает вот так:
Заходит на страничку, чекает на ней линки. Начинает проверять линки на первой дочерней страничке и... зацикливается до бесконечности, поскольку на дочерней страничке есть ссылки на родительскую.
Ничего умнее, как добавлять адреса всех страничек в массив и пробегать его каждый раз перед проверкой ссылки и вызова рекурсии я не придумал. Но это же очень-очень-очень неэффективно. Сколько будет отрабатывать такая программа? Наверняка есть более элегантные решения, и наверняка они лежат где-то на поверхности, но я пока придумать ничего не могу.
