Тема: Проблем с рекрусивен бот
Значи написах си следното нещо:
<?php
header("Content-type: text/html; charset=Windows-1251");
function botnet($site){
if(!eregi("http://","$site")) $site = "http://$site";
@$content = file_get_contents("$site") or die("Грешка");
if(!eregi("</a>","$content")) die("<hr>Попаднах на страница без линкове ($site)");
$explode = explode("</a>","$content");
foreach($explode as $part){
$part = explode("<a href=","$part");
$part = $part[1];
$part = explode(" ","$part");
$part = $part[0];
$part = explode(">","$part");
$link = $part[0];
if("$link" !== ""){
$link = str_replace('"','',"$link");
$link = str_replace("'","","$link");
$link = str_replace("./","","$link");
$link = str_replace("//","/","$link");
$link = str_replace(":/","://","$link");
$end = end(explode(".","$link"));
if(!eregi("http://","$link")){
$end2 = end(explode("/","$site"));
$new = str_replace("$end2","","$site");
$link = "$new$link";
}
echo "$link<br>";
botnet($link);
}
}
}
echo "<form method=post>";
echo "Сайт: <input type=text name=site><p><input type=submit value='Вземи линковете'></form><p>";
$site = $_POST['site'];
if("$site" == "") exit;
botnet($site);
?>Работи перфектно, обаче има един брутален проблем:
да речем го пускам да индексира www.site.com
в www.site.com има линк към www.site2.com
взима линковете и от двата сайта, както и линковете от линковете и т.н.
НО
ако в сайт www.site2.com има линк към www.site.com ботът запецва, защото започва да се лашка напред-назад из двата сайта
Някакви идеи, как може да се избегне това, защото аз нищо не можах да измисля ![]()


