Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

CURL и странности с TIMEOUT

513
19 декабря 2009 года
Yurec
228 / / 21.09.2005
Друзья, замучил меня CURL. Не знаю почему, но:
1. вообще не влияет установка параметра CURLOPT_TIMEOUT (остается 30 сек, хъотел меньше - никак)
2. Самое главное. Этот TIMEOUT отрабатывает как-то не на открытие одной страницы, а на открытие нескольких страниц суммарно.
Вот пример: если я дергаю _my_GetFileContent_curl много раз, то по истечении 30 секунд после обращения к первому URL выдается ошибка "Fatal error: Maximum execution time of 30 seconds exceeded".
Во-первых не ясно, почему 30, если я устанавливаю 10.
Во вторых не ясно, почему это число (30 сек) работает не как время открытия ОДНОЙ страницы, а фактически как СУММАРНОЕ время работы CURL по всем страницам.

Код:
function _my_GetFileContent_curl($iurl)
{
    $vUrl=urldecode($iurl);
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_HEADER, 0);
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_USERAGENT, 'User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.5) Gecko/20041107 Firefox/1.0');
    curl_setopt($ch, CURLOPT_TIMEOUT, 10);

    curl_setopt($ch, CURLOPT_PROXY, 'proxy.net.site.ru:8080');
    curl_setopt($ch, CURLOPT_PROXYUSERPWD, 'user:password');

 $file_content=curl_exec($ch);
    $Error=curl_error($ch);
    curl_close($ch);

    return  $file_content;

}


Вот результат работы кода:
echo date("H:i:s");
_my_GetFileContent_curl("http://mysite.ru?param=1");
echo date("H:i:s");
_my_GetFileContent_curl("http://mysite.ru?param=1");
echo date("H:i:s");
_my_GetFileContent_curl("http://mysite.ru?param=1");
echo date("H:i:s");
_my_GetFileContent_curl("http://mysite.ru?param=1");
echo date("H:i:s");
_my_GetFileContent_curl("http://mysite.ru?param=1");
echo date("H:i:s");
_my_GetFileContent_curl("http://mysite.ru?param=1");
echo date("H:i:s");

11:34:38
11:34:43
11:34:47
11:34:51
11:34:57
11:35:05
Fatal error: Maximum execution time of 30 seconds exceeded
то есть как видно падает через 30 секунд после ПЕРВОГО обращения, что за бред!?!
513
19 декабря 2009 года
Yurec
228 / / 21.09.2005
Друзья, я тУпик.
Для CURla переустановил себе полностью PHP, а про max_execution_time в PHP.INI забыл, раньше он был большой, а после переустановки стал опять маленький.
Так что теперь ОК.
Помогите только все же разобраться почему timeout curla не удается сделать меньше
244
19 декабря 2009 года
UAS
2.0K / / 19.07.2006
Вы хотите, чтобы вам страницы быстрее доставлялись? Так тут проблема не в курле. Расширьте себе интернет-канал или умудритесь как-нибудь увеличить время отклика сайта, к которому обращаетесь.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог