Проблема следущего характера!
Написал рекурсивную функцию, которая просматривает все страницы и соберает ссылки, потом в цикле открываю ссылку удаляю весь хтмл и сую его в базу, но скрипт обрабатывает в среднем 22 ссылки а потом просто виснет!
Предложите альтернативный вариант паучка :rolleyes:
Или помогите довести до ума этот! :rolleyes:
Вот скрипт:
include(\'config_inc.php\');
function index($dir)
{
if(is_readable($dir2=$dir))
{
$OpenDir=opendir($dir);
while(($file=readdir($OpenDir))!==false)
{
if($file!="."&&$file!=".." && $file!="admin" && $file!="map" && $file!="forum" && $file!="desk")
{
if(is_dir($dir.chr(47).$file))
index($dir.chr(47).$file);
else
{
if (substr($file,-4) == ".php" || substr($file,-4) == ".html" || substr($file,-4) == ".htm" || substr($file,-4) == ".shtml" ){
if ($file!="indexing.php" && $file!="main1.php" && $file!="connect.php" && $file!="sch.php" && $file!="vv.php"){
$OpenFile=fopen($dir.chr(47).$file,\'r\');
$content=fread($OpenFile,filesize($dir.chr(47).$file));
$content=preg_replace("/ +/s"," ",$content);
$dir2=str_replace(".","",$dir2);
preg_match_all("/<[Aa][ \\r\\n\\t]{1}[^>]*[Hh][Rr][Ee][Ff][^=]*=[ \'\\"\\n\\r\\t]*([^ \\"\'>\\r\\n\\t#]+)[^>]*>/",$content,$uri);
$content=null;
foreach($uri[1] as $uri){
$uri=preg_replace("/PHP_SELF/", "$file", $uri);
$uri=str_replace("$", "", $uri);
$uri=str_replace("mailto:iapp@ua.fm", "index.php", $uri);
$uri=str_replace("mailto:2Spro@ua.fm", "index.php", $uri);
$uri=str_replace("http://www.dmeti.dp.ua/index.html", "index.php", $uri);
$uri=str_replace("../", "", $uri);
$url="http://".$_SERVER["SERVER_NAME"].$dir2.chr(47).$uri;
$res=mysql_query("Select link from search where link=\'$url\'") or die (mysql_error());
$num=mysql_num_rows($res);
echo $num."
";
if($num==0){
$cont=file_get_contents($url);
mysql_query("insert into search (word, link) values(\'".addslashes($cont)."\', \'$url\')") or die(mysql_error());
}
}
fclose($OpenFile);
}
}
}
}
}
}
}
$dir=".";
index($dir);
echo "<a href=# onClick=\'document.history.back()\'>Назад</a>";