[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Остановка скрипта
session_on
Привет, написал скрипт для выдергивания картинок с сайта - парсер.
Написан он правильно - то есть синтаксических ошибок нет, но почему то он зависает - написал его так чтоб он мог выдернуть 500 картинок с сайта - часто все картинки которые я запросил выдергиваются - и я дальше с ними работаю, но иногда скрипт подвисает на одном моменте и не хочет дальше работать.

Смысл скрипта следующий - заходим на нужный сайт - выдергивает картинку - записываем ее код в базу.

Узнал где останавливается скрипт (написал вывод сообщения при каждом ходе его действий - чтоб понять где он останавливается), вот часть скрипта

preg_match('!img alt=\"img\ "src=\"http:\/\/'.$site.'\/(.*?)\"!i',$html,$out);
if(!empty($out[1])){
$izvimg=$out[1];
$sad=0;
break1:
$fp=fsockopen("$site", 80, $errno, $errstr, 2);
echo 'Коннект<br/>';
if(!$fp){
$sad++;
echo 'Думает!<br/>';
if($sad==3){ echo 'Ошибка - следующая картинка<br/><br/>'; goto break2;}
goto break1;
}else{
$out="GET /$izvimg HTTP/1.1\r\n";
$out.= "User-Agent: {$_SERVER['HTTP_USER_AGENT']}\r\n";
$out.= "Host: $site\r\n";
$out.= "Accept: {$_SERVER['HTTP_ACCEPT']}\r\n";
$out.= "Accept-Language: {$_SERVER['HTTP_ACCEPT_LANGUAGE']}\r\n";
$out.= "Accept-Encoding: {$_SERVER['HTTP_ACCEPT_ENCODING']}\r\n";
$out.= "Cache-Control: no-cache\r\n";
$cookie='';
foreach ($cookiearr as $key => $value){ $cookie.=''.$key.'='.$value.'; ';}
if(strlen($cookie)>0){ $cookie2='Cookie: '.$cookie.'path=/'; $out.= "$cookie2\r\n";};
$out.= "Connection: Close\r\n\r\n";
$htmlimg = '';
fputs($fp,$out);
while(!feof($fp)){
$htmlimg.=fgets($fp, 4096);
echo 'fgets<br/>';
}
echo 'Отдал<br/>';
fclose($fp);
echo 'Закрыл<br/>';
}
echo 'Отдал2<br/>';

После ввода - вывода поэтапного каждого шага скрипта узнал что он остановился на сообщение "Закрыл" - это же не нормально, дальше идет только скобка, сообщение "Отдал2" не было.
Тестирую скрипт на Denwere, по всей видимости проблема исходит из-за настроек denwera - возможно нужно увеличить что либо в php.ini , но что именно не пойму...

Подскажите пожалуйста на ваш взгляд из-за чего происходит замыкание скрипта - max_execution_time установлен в 100000000 сек.
Скрипт не останавливается с ошибкой, а продолжает дальше думать, но не чего не делать, хоть час жди он просто будет дальше думать...
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.