PHP cURL Warning during curl_multi_add_handle

My php code

    $urlArray = array('http://firsturl.com', 'http://secondurl.com');
    $nodeCount = count($urlArray);
    $chContainter = array();
    $mh = curl_multi_init();
    for($i = 0; $i < $nodeCount; $i++) {
        $chContainter[$i] = curl_init();
        curl_setopt($chContainter[$i], CURLOPT_URL, $urlArray[$i]);
        curl_setopt($chContainter[$i], CURLOPT_HEADER, 0);
        curl_setopt($chContainter[$i], CURLOPT_RETURNTRANSFER,1);
        curl_multi_add_handle($mh,$chContainter[$i]);
    } 

generates the following warning

Warning: (null) (): 4 is invalid Resource descriptor cURL in Unknown on line 0

Warning: (null) (): 5 invalid Resource descriptor cURL in Unknown on line 0

I did some debugging and found out that a warning was generated when I try to add the curl handle to $ mh.

Please, help. Thank.

+3
source share
4 answers

Be sure to initialize curl_multi_init()only after the initialization of the sessions curl_init(), otherwise you will get this error.

+4
source

. URL- , : http://example.com/space here/. , %20, : http://example.com/space%20here/

, , URL .

0

manual (. # 1) , curl_multi_init() curl_init(). :

$urlArray = array('http://firsturl.com', 'http://secondurl.com');
$nodeCount = count($urlArray);
$chContainter = array();
for ($i = 0; $i < $nodeCount; $i++) {
    $chContainter[$i] = curl_init();
    curl_setopt($chContainter[$i], CURLOPT_URL, $urlArray[$i]);
    curl_setopt($chContainter[$i], CURLOPT_HEADER, 0);
    curl_setopt($chContainter[$i], CURLOPT_RETURNTRANSFER,1);
}

$mh = curl_multi_init();
for ($i = 0; $i < $nodeCount; $i++) {
    curl_multi_add_handle($mh,$chContainter[$i]);
}

, .

0

:

$url = 'www.meilishuo.com';
$queue = curl_multi_init();
$ci = createCh($url);
$ciSec = createCh($url);
curl_multi_add_handle($queue, $ci);
curl_multi_add_handle($queue, $ciSec);

function createCh($url) {
    $ci = curl_init();
    /* Curl settings */
    curl_setopt($ci, CURLOPT_CONNECTTIMEOUT, 5);
    curl_setopt($ci, CURLOPT_NOSIGNAL,1);
    curl_setopt($ci, CURLOPT_TIMEOUT, 1);
    curl_setopt($ci, CURLOPT_RETURNTRANSFER, TRUE);
    curl_setopt($ci, CURLOPT_HEADER, 0);
    curl_setopt($ci, CURLOPT_URL, $url);
    curl_setopt($ci, CURLOPT_FOLLOWLOCATION,1);
    return $ci;
}

:

PHP : (null)(): 34 cURL Unknown 0

PHP : (null)(): 35 cURL Unknown 0

PHP : (null)(): 34 cURL Unknown 0

PHP : (null)(): 35 cURL Unknown 0

:

, :

    curl_multi_close($queue);

, , .

?

" 0" ( )

0
source

Source: https://habr.com/ru/post/1728798/


All Articles