Есть функция которая по списку url используя curl_multi_exec проверяет ответ от сервера и возвращает мне, на локалхосте работало раньше, сейчас при переносе на хостинг не работает - curl_multi_select в 26 строке постоянно возвращает -1 и не выходит из цикла. Подскажите пожалуйста, что может быть не правильно? P.S. На сервере проверил в запрещенных функциях в настройках пхп curl multi нет. Одиночная проверка работает Вот код: PHP: public function isDomainsListAvailable($urls){ $multi_init = curl_multi_init(); $job = array(); foreach ($urls as $url) { // тут получаю конкретный урл $curl = curl_init($url->connection_name); curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); curl_setopt($curl, CURLOPT_HEADER, true); curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, 5); curl_setopt($curl, CURLOPT_TIMEOUT, 5); curl_multi_add_handle($multi_init, $curl); } $thread = null; do { $thread_exec = curl_multi_exec($multi_init, $thread); } while ($thread_exec == CURLM_CALL_MULTI_PERFORM); while ($thread && ($thread_exec == CURLM_OK)) { // а вот тут получаю постоянно -1, как следствие - бесконечный цикл.. if (curl_multi_select($multi_init) != -1) { do { $thread_exec = curl_multi_exec($multi_init, $thread); $info = curl_multi_info_read($multi_init); if ($info['msg'] == CURLMSG_DONE) { $init = $info['handle']; $page = array_search($init, $job); // пишу необходимую инфу в массив $job[$page] = curl_getinfo($init); curl_multi_remove_handle($multi_init, $init); curl_close($init); } } while ($thread_exec == CURLM_CALL_MULTI_PERFORM); } } curl_multi_close($multi_init); return $job; }
Это неуважение по отношению к другим участникам. Когда у тебя сложности, ты просишь о помощи. А сам никому помогать не хочешь. Напиши в чём была проблема — помоги другим, тем кто придёт через поисковик.
аха а самое интересное мне - у меня такая же байда =) -1 выводит и все .. как лечить хз =) ну думаю вы помните ..
Извиняюсь, что сразу не написал. Проблема была решена использованием сторонней библиотеки https://github.com/KhristenkoYura/mcurl Выяснить почему не работает в моем велосипеде не удалось. Хотя почти уверен, что проблема на стороне сервера, так как на старом проекте этот скрипт завелся.