![]() |
|
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]()
|
|
| scu |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 20 Регистрация: 4.7.2005 Где: Москва Репутация: нет Всего: нет |
Собственно задача проверить нет ли колец (когда один сайт ссылается на другой, другой на другой..... другой на первый).
Собственно как лучше организовать это все на php - сам алгоритм проверки ссылок на сайте, перехода по ссылкам и тп... Буду благодарна :-) от объема и представления графа, кот. может получится - пухнет голова))) Задачу ограничем тем, что зададим изначально глубину поиска. + зададим изначально фильтр на ссылки, которые учитывать не нужно и переходить, соответственно, по ним тоже. как результат- список всех колец в виде цепочки. то есть примерно так: сайт 1 -> сайт 2 -> сайт 3 сайт 4 -> сайт 1 Это сообщение отредактировал(а) scu - 5.2.2006, 18:51 |
|||
|
||||
| Mal Hack |
|
|||
![]() Мудрый... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 9926 Регистрация: 15.2.2004 Репутация: 8 Всего: 261 |
Ссылки надо узнать парсингом удаленной страницы?
|
|||
|
||||
| scu |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 20 Регистрация: 4.7.2005 Где: Москва Репутация: нет Всего: нет |
да, то есть коннектимся и читаем страницу, которую нам отдают (делаем из себя либо просто тупо ие например)
|
|||
|
||||
| Mal Hack |
|
|||
![]() Мудрый... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 9926 Регистрация: 15.2.2004 Репутация: 8 Всего: 261 |
Выход один - проходить по всем сайтам через curl и искать ссылки.
|
|||
|
||||
| scu |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 20 Регистрация: 4.7.2005 Где: Москва Репутация: нет Всего: нет |
твой ответ мне не пояснил, как построить алгоритм
то есть это понятно, возможно, будет тем, кто представляет, я не представляю пока что... к тому же задача, не найти ссылки на странице, а найти кольца Возможно кто-то еще сможет ответить на мой вопрос :-) Это сообщение отредактировал(а) scu - 5.2.2006, 19:56 |
|||
|
||||
| CyClon |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 838 Регистрация: 3.12.2005 Репутация: нет Всего: 4 |
Есть в тесксте ссылки - открываем ее - смотри содержание, ищем ссылку нужную - если есть то переходим на ссылку и ищем там уже что нада - и т.д.
Сделать... Curl наеврное. |
|||
|
||||
| -=Ustas=- |
|
|||
![]() Ustix IT Group ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2222 Регистрация: 21.1.2005 Где: Краснодар Репутация: нет Всего: 69 |
Не обязательно. Если в PHP настройки для файловых функций открыты, то можно контент и файловыми функциями подтягивать. scu, в принципе, это не важно как ты будешь контент выдергивать, сначала тебе надо определить глубину вложенности этого кольца, затем определяешь первое звено и вперёд по ссылкам, а цикле ессно делаешь сравнение на первое звено. PS, если я тебя конечно правильно понял. -------------------- В искаженном мире все догмы одинаково произвольны, включая догму о произвольности догм. ----- |
|||
|
||||
| Grasshopper |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 31 Регистрация: 23.3.2006 Репутация: нет Всего: 1 |
А если нам не известно начальное звено? Тогда все надо не через цикл, а через рекурсию делать, да еще и пройденные ссылки через список просматривать... |
|||
|
||||
| youri |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 740 Регистрация: 17.4.2004 Репутация: нет Всего: 16 |
по-моему это довольно сложная задача и стоит подумать имеет ли смысл ее решать (зачем это надо?)
программа представляет собой функцию/метод (нужное подчеркнуть), которая получает на вход ссылку, просматривает страничку, получает список ссылок, вызывает себя для каждой ссылки из списка надо хранить текущее состояние - т.е. дерево, которое хранит пройденные пути. конечно, хранить каждый путь отдельно это проще, но при наличии дерева можно не заходить на уже посещенные страницы упрощение: задавать ограничение на длину цепочки отдельно для сайта, и для кольца по поводу фильтра - можно сделать фильтр на группу ссылок - куча ссылок, у которых, например, одинаковое начало. Лучше - просто что-то одинаковое (группа, которая задается по шаблону или регулярному выражению). возможно, по мере написания, можно будет еще что-то упростить - посмотреть, по каким ссылкам ходил скрипт, и разумно ли ему было по всем ним ходить; если не разумно, то как от этого избавиться повторюсь: зачем это нужно? может можно решить проблему другим макаром |
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | PHP: Для профи | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |