Поиск всех ссылок на сайте, qwer, 01-Авг-08, 16:07 [смотреть все]В общем задача такая. Требуется написать рекурсивную функцию для поиска всех ссылок внутри сайта. Допустим у меня есть сайт http://aaa.ru. Надо чтобы функция обходила сайт и вывела в файл или в массив все ссылки, как с первой страницы так и со всех внутренних, причем повторяющихся не должно быть. Давно сам не сталкивался с рекурсиями, если кто может подскажите.Для вывода всех ссылок с главной страницы код у меня есть: function showTree($home) { static $count; $s=file_get_contents($home); //Обработка $s $links = get_link($s); for($i=0; $i < count($links); $i++){ $lnk=trim($links[$i][2]); $us=false; for ($j=0;$j<count($tree);$j++){ if ($tree[$j]==$lnk){ $us=true; } } if (!$us){ $count = (isset($count)) ? ++$count : 0; $tree[$count]=$lnk; } } } function get_link($text) { $count = preg_match_all("/<a[^>]+href=([\"']?)([^\\s\"'>]+)\\1/is", $text, $matches, PREG_SET_ORDER); /* for($i=0; $i < count($matches); $i++) { $links[$matches[$i][2]] = 1; } */ return $matches; }
|
- Поиск всех ссылок на сайте, Pahanivo, 16:14 , 01-Авг-08 (1)
Мож кто за меня работу сделает ... ))
- Поиск всех ссылок на сайте, qwer, 16:55 , 01-Авг-08 (2)
>Мож кто за меня работу сделает ... )) Не если в ломы помощь, то проблем нету. Я логику сам понимаю, просто не знаю как правильно сделать рекурсию. Точнее сделать точку останова!
- Поиск всех ссылок на сайте, Pahanivo, 11:18 , 04-Авг-08 (3)
>>Мож кто за меня работу сделает ... )) > >Не если в ломы помощь, то проблем нету. Я логику сам понимаю, >просто не знаю как правильно сделать рекурсию. Точнее сделать точку останова! >Песдуем по рекурсии вдоль страниц - найденные URLы складываем в базу/массив или кудато еще. Если конкретный урл уже есть в найденном - прекращаем ветвь рекурсии. Если на странице нет ссылок - тоже прекращаем. Думаю еще несколько условий стопа придется обработать. Скажем если ты будешь ломится на сайт с php сессиями, куки у тя соотв не обрабатываются - может быть вариант что php будет по каждому запросу генерить уникальный session id. Следовательно можно бесконечно перебирать. Вообще задача не такая простая как тебе кажется.
- Поиск всех ссылок на сайте, qwer, 17:13 , 04-Авг-08 (4)
Попробую, если что получиться дам знать.
- Поиск всех ссылок на сайте, qwer, 15:42 , 06-Авг-08 (5)
>Попробую, если что получиться дам знать. В общем сделал тупо, если надо скину код
- Поиск всех ссылок на сайте, angra, 03:56 , 07-Авг-08 (6)
а на перле аж несколько строчек, при желании даже в однострочник можно вместить. Но на сях это конечно для реальных пацанов :)
- Поиск всех ссылок на сайте, kortes, 15:32 , 01-Июн-10 (7)
>>Попробую, если что получиться дам знать. > >В общем сделал тупо, если надо скину код Столкнулся с той же проблемой! Вы не могли бы поделиться кодом?
- Поиск всех ссылок на сайте, qwer, 16:16 , 06-Июн-10 (8)
>>>Попробую, если что получиться дам знать. >> >>В общем сделал тупо, если надо скину код > >Столкнулся с той же проблемой! Вы не могли бы поделиться кодом? Давайте завтра напишите, сегодня дел очень много, помимо этого!
|