Написать функцию получения ссылок на странице
Нужно написать функцию get_links которая получает со страницы сайта все сыслки, определяя внутренние и внешние.
Сейчас есть функция, но она не везде корректно работает. Нужно либо доработать, либо написать свою
Нужно учитывать что ссылки могут быть записаны в html в любом виде, с кавычками и без, с http и без, с названием домена или без
например: href=?page=1 или href='post.php' target="_blank" или href="/post.php" итд
В общем нужно учесть всевозможные варианты.
Итак алгоритм:
1. Выдираем ссылки.
2. Отсекаем якоря (#) у ссылок (например http://site.ru/index.php#first)
3. Убираем внутренние ссылки на файлы (внешние оставляем)
4. Убираем ссылки вида mailto:
5. Сортируем на внутренние и внешние:
- Если ссылка содержит имя домена на котором расположена значит она внутренняя
- Если ссылка не содержит http значит она внутренняя
- Если ссылка содержит http и домен другой - значит она внешняя
6. Удаляем дубли внутренних ссылок (например array_unique) (внешние дубли удалять не надо)
7. Приводим ссылки к единому виду, тоесть:
если ссылка была вида href=?page=1 то приводим ее к виду http://site.ru/?page=1
В общем все неполноценные обрезанные ссылки нужно привести к нормальному виду.
В итоге функция должна возвращать массив с:
Внутренние ссылки: значение href и анкор для каждой.
Внешние ссылки: значение href и анкор для каждой если это ссылка на страницу
Внешние ссылки: значение href и анкор для каждой если это ссылка на файл
т.е. разграничение страниц и файлов
ВАЖНО: Нужно будет хорошо протестировать функцию перед сдачей, что бы она работала корректно и не сбоила.
Не стоит нагружать лишние циклы и прочие тяжелые вещи, т.к. нагрузка будет достаточно большой.
В принципе тут все решается регулярками.
Оплата Webmoney по факту и после тестирования (возможна проверка на вашем сервере)