[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Обрыв работы скрипта после curl_exec
VadikV
Скачиваю файл приведенным куском кода.
set_time_limit(60*60);
ignore_user_abort(1);
if ($f = @fopen($UPLOADS_DIR . $file_name, 'w+'))
{
$GLOBALS['hadle_file'] = $f;
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10);
curl_setopt($ch, CURLOPT_TIMEOUT, 60*60);
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)');
curl_setopt($ch, CURLOPT_COOKIEJAR, $COOKIES_FILE_NAME);
curl_setopt($ch, CURLOPT_COOKIEFILE, $COOKIES_FILE_NAME);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_WRITEFUNCTION, "MyWrite");
if (!($result = curl_exec ($ch)))
echo 'not Ok';
else
echo 'Ok';
}

Маленькие файлы, которые требуют времени около 30 сек - скачиваются нормально и echo выводит строку.
На больших файлах проблема. curl отрабатывает нормально до конца (т.е. файл скачивается полностью) и скрипт прерывает свою работу - ни одно из echo не отрабатывает.
В чем может быть глюк?



Спустя 1 день, 4 часа, 14 минут, 23 секунды (25.07.2010 - 20:13) Kuzya написал(а):
Проверьте в php.ini опцию max_execution_time - там в секундах указывается время работы скрипта

Спустя 1 час, 5 минут, 29 секунд (25.07.2010 - 21:18) VadikV написал(а):
Цитата (Kuzya @ 25.07.2010 - 17:13)
Проверьте в php.ini опцию max_execution_time - там в секундах указывается время работы скрипта

Стоит 60.
Но... Сделал тестовый скрипт:
    $n = 0;
set_time_limit(60*60+5);
while ($n < 60*60) // 1 час
{
$n++;
sleep(1);
$f = fopen('time.txt', 'w+');
fwrite($f, $n);
fclose($f);
}

В конце его работы в файле записано 3600, т.е. он нормально отработал 1 час.
И еще другой скрипт по отправке файла по фтп, нормально работает до 1 часа точно. Постоянно им большие файлы заливаю. Работает через
ftp_connect
ftp_set_option($conn_id, FTP_TIMEOUT_SEC, 60*60);
ftp_nb_put
while (ftp_nb_continue(...) == FTP_MOREDATA
...


Спустя 21 день, 1 час, 41 минута, 53 секунды (16.08.2010 - 23:00) Beowulf написал(а):
У cUrla есть дебаг он пишет свои действия в лог попробуйте воспользоваться им.

Спустя 8 часов, 52 минуты, 5 секунд (17.08.2010 - 07:52) VadikV написал(а):
Цитата (Beowulf @ 16.08.2010 - 20:00)
У cUrla есть дебаг он пишет свои действия в лог попробуйте воспользоваться им.

cUrl отрабатывает нормально до конца. В логе все ок.
Проблема решилась добавлением
curl_setopt($ch, CURLOPT_WRITEFUNCTION, "MyWrite");

в функцию MyWrite строки для периодической записи в произвольный файл любой информации, даже по 1 символу раз в секунду.

Не понятно sad.gif
Быстрый ответ:

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