e_moon
Новичок
Цикл "зацикливается"
Здравствуйте, очень надеюсь на Вашу помощь.
Создаю генератор Sitemap и столкнулся с проблемой в рекурсивном цикле, который должен находить ссылки для формирования карты сайта.
Привожу код моего скрипта, который отработав минуты три (при этом процессор начинает страшно гудеть ппц!) вырубается, не выдав ни каких предупреждений. Если жду загрузки в Opera выдает, что "Соединение закрыто сервером".
Посмотрите пожалуйста чего так, что изменить. Вообщем надеюсь на Вашу помощь в решении задачи...
Здравствуйте, очень надеюсь на Вашу помощь.
Создаю генератор Sitemap и столкнулся с проблемой в рекурсивном цикле, который должен находить ссылки для формирования карты сайта.
Привожу код моего скрипта, который отработав минуты три (при этом процессор начинает страшно гудеть ппц!) вырубается, не выдав ни каких предупреждений. Если жду загрузки в Opera выдает, что "Соединение закрыто сервером".
Посмотрите пожалуйста чего так, что изменить. Вообщем надеюсь на Вашу помощь в решении задачи...
PHP:
set_time_limit(0);
ini_set('max_execution_time',0);
ignore_user_abort(True);
class Calc
{
var
$Data=Array();
function GET($URL)
{
if(!preg_match('/^(f|ht)tp(s?):\/\/'.$_POST['domain'].'/',$URL))
return Null;
else
...
return $HTML;
}
function finedLinks($HTML)
{
preg_match_all('/<a.*?href=\"?\'?([^"\'>]+)\"?\'?.*?>/i',$HTML,$Buff);
if(isset($Buff[1][0]))
{
foreach($Buff[1] AS $Key=>$Value)
{
if($Value)
{
print ' '; //Печатаю для браузера, чтоб не зависал
if(in_array($Value,$this->Data)) continue;
$this->Data[]=$Value;
$this->finedLinks($this->GET($Value));
}
unset($Value);
}
}
unset($Buff);
}
}
$test=new Calc;
$test->finedLinks($test->GET($_POST['domain']));
print_r($test->Data);
$fp=fopen('buff.txt','w+');
fputs($fp,implode("/r/n",$test->Data));
fclose($fp);
