Найдите исполнителя для вашего проекта прямо сейчас!
Разместите заказ на фриланс-бирже и предложения поступят уже через несколько минут.

Нужно написать функцию 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 по факту и после тестирования (возможна проверка на вашем сервере)

13 лет назад
Hungry_Hunter
Артем 
38 летРоссия
16 лет в сервисе
Был
2 года назад
41 отзыв
  • Похожие заказы
  • 1)Требуется написания скриптов калькуляторов ОСАГО и КАСКО (с отправкой на e-mail) 2)Требуется встроить данные скрипты в движок (с движком пока не определился, готов рассмотреть варианты) +Доп. сделать не сложный дизайн Примеры : http://www.strahovka-auto.ru/kasko.htm http://altbroker.ru/ http://www.assor.ru/kasko_calculator Дополнено 21.10.2011 : Калькулятор осаго должен выглядеть примерно ...

    Закрыт
    12 лет назад
  • $500

    Требуется Веб программист на продолжительный срок сотрудничества, для доработки существующего интернет-магазина с последующей его поддержкой. Ищется профессионал специализирующийся на 1с- bitrix имеющий навыки программирования и администрирования системы. Требуется доработка и переделка магазина, есть как простые ...

    Закрыт
    12 лет назад
  • Проект: v7zvezd.ru в IE не отображается баннер крупные на главной - крутилка! написан вроде на куери! Без цен не рассматирваю заявки!

    Завершен
    13 лет назад
  • $65

    сайт - http://www.zhovten-kino.kiev.ua/ движ - самопис 4 задачи, общий бюджет 65 долларов (525 грн) 1. Админка сайта кинотеатра Жовтень. Совместить функционал ""Фильм"" и ""Смотрите скоро"". При создании Фильма ставить галочку ""Смотрите скоро"". - добавить поле Дата. - ...

    Завершен
    13 лет назад
  • Есть сайт, некорректно работающий, надо: 1. На части страниц поправить верстку 2. часть ссылок с заголовка и текста не совпадают 3. добавить постинг в Tвиттер

    Завершен
    13 лет назад
  • $10

    Добрый день! Прошу совета по attache картинок к письму при рассылке скриптом за небольшую плату (10$) и отзыв. Делаем новостную рассылку на сайте, автоматически. Хотим вставить изображение (логотип) в письмо. Если просто вставлять тегом , то гугловская почта ...

    Завершен
    13 лет назад
  • $100

    Нужен подбор товаров по фильтрам точно такой же как на розетке ( http://rozetka.com.ua/notebooks/c80004/filter/preset=entertainment/) Админка не нужна. Только скрипт отбора. Существующий подбор, который есть у меня не устраивает. Нужно или сделать такой же с нуля или переделать мой.

    Закрыт
    13 лет назад