Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: 2 Курла подряд не работают
Форумы портала PHP.SU » PHP » Программирование на PHP » 2 Курла подряд не работают

Страниц (1): [1]
 

1. isle - 28 Января, 2011 - 15:52:25 - перейти к сообщению
Столкнулся со странной проблемой. Если использую один Курл, то получаю массив $info, если использую второй Курл, то следующий массив пустой - нули. Кто в курсе, что за глюк и как его обойти?

От опций не зависит, от типов Курлов не зависит, т.е. простой Курл, мультикурл или копированный (curl_copy_handle) - один чёрт, пустой массив. Все опции удалял, удалял по одной и т.д., все эксперементы ничего не дали, ошибок нет, описание подобного случая в сети не нашел, куда копать? Вот пример пока такой:

CODE (htmlphp):
скопировать код в буфер обмена
  1. $v = curl_init($web);
  2. curl_setopt($v,CURLOPT_HEADER,1);
  3. curl_setopt($v,CURLOPT_HEADER_OUT,1);
  4. curl_setopt($v,CURLOPT_HTTPHEADER,$arr_headers);
  5. curl_setopt($v,CURLOPT_RETURNTRANSFER,1);
  6. curl_setopt($v,CURLOPT_TIMEOUT,10);
  7. curl_setopt($v,CURLOPT_CONNECTTIMEOUT,2);
  8. curl_setopt($v,CURLOPT_REFERER,$referer);
  9. curl_setopt($v,CURLOPT_AUTOREFERER,1);
  10. curl_setopt($v,CURLOPT_USERAGENT,$ua);
  11. curl_setopt($v,CURLOPT_FAILONERROR,0);
  12. curl_setopt($v,CURLOPT_FILETIME,1);
  13. curl_setopt($v,CURLOPT_NOBODY,1);
  14. curl_setopt($v,CURLOPT_LOW_SPEED_LIMIT,9999);
  15. curl_setopt($v,CURLOPT_LOW_SPEED_TIME,3);
  16. curl_setopt($v,CURLINFO_REDIRECT_TIME,3);
  17. curl_setopt($v,CURLOPT_FRESH_CONNECT,3);
  18. curl_setopt($v,CURLOPT_VERBOSE,1);     
  19. curl_setopt($v,CURLOPT_MAXCONNECTS,3);
  20. curl_setopt($v,CURLOPT_MAXREDIRS,0);
  21. curl_setopt($v,CURLOPT_BUFFERSIZE,65536);
  22. curl_setopt($v,CURLINFO_EFFECTIVE_URL,0);
  23. curl_setopt($v,CURLOPT_FOLLOWLOCATION,0);
  24. $headers = curl_exec($v);
  25. $myerr = curl_errno($v);
  26. $info = curl_getinfo($v);
  27.  
  28. #$v2 = curl_copy_handle($v);
  29. $v2 = curl_init($location);
  30. ...
  31. $headers2 = curl_exec($v2);
  32. $myerr2 = curl_errno($v2);
  33. $info2 = curl_getinfo($v2);
  34.  


$location - взят из хидера первого курла.

Ошибок нет на экране, оба хидера получаю, как Инфо получить? Заметил, если ссылка левая во втором курле/мультикурле/копированном_курле, то показывается инфо.

CODE (htmlphp):
скопировать код в буфер обмена
  1. err2/info2: 0
  2.     [url] => http://site.ru/
  3.     [content_type] =>
  4.     [http_code] => 0
  5.     [header_size] => 0
  6.     [request_size] => 0
  7.     [filetime] => 0
  8.     [ssl_verify_result] => 0
  9.     [redirect_count] => 0
  10.     [total_time] => 0
  11.     [namelookup_time] => 0
  12.     [connect_time] => 0
  13.     [pretransfer_time] => 0
  14.     [size_upload] => 0
  15.     [size_download] => 0
  16.     [speed_download] => 0
  17.     [speed_upload] => 0
  18.     [download_content_length] => 0
  19.     [upload_content_length] => 0
  20.     [starttransfer_time] => 0
  21.     [redirect_time] => 0
  22. )


Спасибо за внимание.
2. Viper - 28 Января, 2011 - 16:27:15 - перейти к сообщению
isle каждую сессию курла нужно закрывать. Поищите на этом форуме valenok описывал технологию multi-request via curl или что-то наподобие.
3. isle - 28 Января, 2011 - 16:30:22 - перейти к сообщению
Да, каждая сессия закрыта, всё много раз проверил, просто скрипт очень длинный был, люшнюю строчку удалил случайно.

Проверил сейчас курл в курле и курл за курлом - одно и тоже, второй результат пуст.

Спасибо, сейчас поищу.
4. isle - 29 Января, 2011 - 02:12:45 - перейти к сообщению
Наконец-то заработало Не понял Как исправил - сам не понял Ха-ха Код много раз переписывал, видимо, какой-то символ забыл или еще чего...
Спасибо за внимание к моей проблеме.
5. JustUserR - 29 Января, 2011 - 17:18:42 - перейти к сообщению
isle пишет:
Как исправил - сам не понял Код много раз переписывал, видимо, какой-то символ забыл или еще чего...
Возможной причиной осуществления указанного некорректного функционирования PHP-приложения включающего элементы последовательно исполняемых CURL-запросов - может являться влияние внешних ограничений связанных с параметрами максимальных допустимых ресурсов таких как время ожидания ответа от удаленного web-сервера - в частности при использовании передачи информационных полей в chunked-режиме для оригинального соединения может осуществляться приведение в режим ожидания - что препятствует возможности открытия нового ресурса целевого curl-соединения

 

Powered by ExBB FM 1.0 RC1