Fatal error: Maximum execution time of 30 seconds exceeded
Вот сам сцрипт
echo "<title>Фрикинг</title>";
for ($n=105; $n < 150; $n++) {
$article = "http://www.xakep.ru/magazine/xa/" . $n . "/";
$ch = curl_init (); // инициализация
curl_setopt ($ch , CURLOPT_URL , "http://www.xakep.ru/magazine/xa/" . $n ."/default.asp");
curl_setopt ($ch , CURLOPT_USERAGENT , "Mozilla/5.0"); // каким браузером будем прикидываться
curl_setopt ($ch , CURLOPT_RETURNTRANSFER , 1 ); // вывод страницы в переменную
$content = curl_exec($ch); // скачиваем страницу
curl_close($ch); // закрываем соединение
preg_match_all("/center><h2>(.*[№].*)<\/h2><\/center>/isU", $content, $NumberMagazine, PREG_PATTERN_ORDER); //номер журнала
preg_match_all("/<strong>ФРИКИНГ<\/strong>([\S\s]*)<strong>.*<\/strong>/isU", $content, $SourceLinks, PREG_PATTERN_ORDER);
preg_match_all("/<a href=\"(.*)\">(.*)<\/a>/isU", $SourceLinks[1][0], $LinksArticle, PREG_PATTERN_ORDER);
echo "<p>", $NumberMagazine[1][0];
for ($i = 0; $i < count($LinksArticle[1]); $i++) {
echo "<p><a href=\"", $article . $LinksArticle[1][$i], "\" target=\"_blank\" >", $LinksArticle[2][$i], "</a>";
flush();
sleep(2);
}
echo "<hr>";
}
Проблема не то что загружен сильно процессор, а в ширине интернет-канала, то есть просто не успевает скачать все за заданное время. Как это обойти, не изменяя php.ini
Спустя 12 минут, 26 секунд (18.07.2011 - 22:26) Winston написал(а):
Вот так отключается лимит на выполнение скрипта
Вверху файла пропиши.
Вверху файла пропиши.
Цитата |
set_time_limit(0); |
Спустя 2 минуты, 11 секунд (18.07.2011 - 22:28) alex12060 написал(а):
sleep(2);
У тебя 45 этераций :)
45 * 2 = 80 секунд.
Ну а так, тебе PHPprogrammer подсказал :)
Спустя 2 минуты, 22 секунды (18.07.2011 - 22:30) freeKODE написал(а):
Цитата (alex12060 @ 18.07.2011 - 19:28) |
sleep(2); У тебя 45 этераций :) 45 * 2 = 80 секунд. Ну а так, тебе PHPprogrammer подсказал :) |
так если слип не писать меня посчитаю как DoS-бота :)
А так вроде решено (конечно доолго он выполняется...)