Использование Curl_multi в PHP для одновременных запросов cURL: пример кода и методы

“curl_multi_php” — это термин, который, по-видимому, представляет собой комбинацию слов “curl_multi” и “php”. Я расскажу вам об этом:

  1. cURL: cURL — это инструмент командной строки и библиотека для передачи данных с использованием различных протоколов, включая HTTP, FTP и другие. Он широко используется в приложениях PHP для отправки HTTP-запросов к другим серверам.

  2. curl_multi: «curl_multi» — это функция cURL в PHP, которая позволяет выполнять несколько запросов cURL одновременно, что может быть более эффективным, чем последовательное выполнение отдельных запросов.

Вот пример использования Curl_multi в PHP:

// Create multiple cURL handles
$curlHandles = [];
$multiHandle = curl_multi_init();
// URLs to fetch
$urls = [
    'https://example.com/endpoint1',
    'https://example.com/endpoint2',
    'https://example.com/endpoint3',
];
// Create cURL handles for each URL
foreach ($urls as $url) {
    $handle = curl_init($url);
    curl_setopt($handle, CURLOPT_RETURNTRANSFER, true);
    curl_multi_add_handle($multiHandle, $handle);
    $curlHandles[] = $handle;
}
// Execute the multi-handle
$running = null;
do {
    curl_multi_exec($multiHandle, $running);
} while ($running > 0);
// Get the responses
$responses = [];
foreach ($curlHandles as $handle) {
    $response = curl_multi_getcontent($handle);
    $responses[] = $response;
    curl_multi_remove_handle($multiHandle, $handle);
}
// Close the multi-handle
curl_multi_close($multiHandle);
// Process the responses
foreach ($responses as $response) {
    // Process each response as needed
    echo $response;
}

В этом примере мы создаем несколько дескрипторов cURL для заданных URL-адресов и добавляем их в мультидескриптор. Затем мы выполняем мультидескриптор для одновременного выполнения запросов. После этого мы получаем ответы и обрабатываем их соответствующим образом.