PHP - cURL Multi - память исчерпана - PullRequest
0 голосов
/ 17 января 2020

У меня есть функция, которая принимает массив URL-адресов (изображений), и я использую curl_multi_getcontent, чтобы получить содержимое каждого изображения. Он отлично работает для массива <1000 изображений, но для массива большего размера (> 1000 изображений) я получаю ошибку памяти:

Допустимый размер памяти 134217728 байт исчерпан (попытался выделить 18237603 байт )

Я уверен, что мне выделено достаточно памяти, и проблема в другом. Можете ли вы помочь мне, пожалуйста, это моя функция:

$mh           = curl_multi_init(); // init the curl Multi
$aCurlHandles = array(); // create an array for the individual curl handles
foreach ($urls as $key => $url) { //add the handles for each url
    $ch  = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_HEADER, 0);
    $aCurlHandles[$key] = $ch;
    curl_multi_add_handle($mh, $ch);
    curl_close($ch);
    unset($ch);
}

$active = null;
//execute the multi handle
do {
    curl_multi_exec($mh, $active);
    curl_multi_select($mh);
} while ($active > 0);

// iterate through the handles and get content
foreach ($aCurlHandles as $key => $ch) {
    $image = curl_multi_getcontent($ch); // get the content
    //
    // do something with the image ....
    //
    curl_multi_remove_handle($mh, $ch);
}

curl_multi_close($mh); // close the curl multi handler

Спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...