curl_multi_add_handle în PHP

Adaugă o cerere cURL, deja configurată, într-un grup de cereri paralele.

Sintaxă
curl_multi_add_handle(CurlMultiHandle $multi_handle, CurlHandle $handle): int

Ce face curl_multi_add_handle

Cererea se configurează normal (URL, CURLOPT_RETURNTRANSFER, timp limită), apoi se adaugă în grup. Nu apelezi curl_exec pe ea: rularea se face prin curl_multi_exec.

O cerere poate fi într-un singur grup o dată. Pentru a o refolosi, scoate-o cu curl_multi_remove_handle.

Parametri

Parametru Descriere
$multi_handle Grupul.
$handle Cererea adăugată.

Ce returnează

0 (CURLM_OK) la succes, sau un cod de eroare CURLM_*.

Exemple

Exemplul 1: Adăugarea și numărarea cererilor

<?php
$mh = curl_multi_init();

foreach (["https://www.dexblog.ro/", "https://www.dexblog.ro/invata/"] as $url) {
    $ch = curl_init($url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    echo curl_multi_add_handle($mh, $ch) . "\n";
}

echo count(curl_multi_get_handles($mh)) . " cereri în grup";

Rezultat

0
0
2 cereri în grup

Greșeli frecvente

  • Adaugi aceeași cerere de două ori. Al doilea apel returnează codul 7 („already added”).

Comenzi înrudite

  • curl_multi_init: Creează un grup în care mai multe cereri cURL rulează în paralel, în loc să aștepte una după alta.
  • curl_multi_remove_handle: Scoate o cerere dintr-un grup de cereri paralele, după ce s-a terminat sau ca să o anulezi.
  • curl_multi_exec: Avansează toate cererile dintr-un grup cURL și spune câte mai rulează. Se apelează într-o buclă până la final.