Показать сообщение отдельно
  #9 (permalink)  
Старый 26.02.2012, 21:57
Аватар для cuberboy
Профессор
Отправить личное сообщение для cuberboy Посмотреть профиль Найти все сообщения от cuberboy
 
Регистрация: 20.07.2009
Сообщений: 202

крон тут не причем - зачем делать карту чаще чем раз в секунду?

или имеет в виду скрипт отрабатывает 30 секунд( в случае ограничения времени ан сервере и не возможности его снять) далее скажем каждые 5 сек сохраняем результат куданить (ну тут опять операции ввода вывода ёмкие ...) ,дебри, задача была в том чтоб раз или два в сутки запускался крон и отрабатывал пхп в фоне, пусть ограничения по времени нету.

делал через file_get_content() , не через курл - думал отработает быстрее.

вставил в кусок разбора страницы регулярное не помогло ... напсиал всё с нуля заработало быстрее !!!! но через минуту опять "тупит", но всё же ))))

вот код
<? set_time_limit(600); $server=$_GET[server]; if(!$server) {echo "<form ><input name=server><input type=submit></form>";exit;}

function parse($index,$s){global $server;global $link;  global $file; global $url2;
if($index=="/") {$index="";}
$link["$index"]=1;  $adr="http://$server/$index";  echo " [".count($url2)."] ".microtime(true)." ".$adr."<br/>";   flush();

$str=@file_get_contents($adr);/*$str=iconv("utf-8","windows-1251",$str);//опционально*/if(!$str) { echo "<b>"."http://$server/$index"."</b>";return 0; }

//@preg_match_all('/<a\s([^<]*?)href=[\'\"]?(?!https?:|mailto:|ftps?:)(\.{0,2}\/)?([^<>\'\"]+)[\'\"]?/im',$str,$rez);
  @preg_match_all('/<a\s([^<]*?)href=[\'\"]?(\.{0,2}\/)?([^<>\'\"]+)[\'\"]?/im',$str,$rez);
foreach($rez[3] as $nom=>$newurl){
if($link[$newurl]!=1){$url2[]=$newurl;  $link[$newurl]=1;}
}
}

$url2[]="/";
while(count($url2)){
$url3=array_pop($url2);
parse($url3,"");
}
?>


идея проста - два массив в одном проверенные ссылки в другом новые.
Ответить с цитированием