Ce face curl_multi_getcontent
În grupurile de cereri nu apelezi curl_exec, deci răspunsul nu ți se returnează direct. După ce cererea s-a terminat, îl citești cu curl_multi_getcontent.
Cererea trebuie să aibă setat CURLOPT_RETURNTRANSFER; altfel răspunsul este afișat direct, iar funcția returnează null.
Parametri
| Parametru | Descriere |
|---|---|
$handle |
Cererea (nu grupul). |
Ce returnează
Răspunsul, ca text, sau null.
Exemple
Exemplul 1: Răspunsuri JSON din cereri paralele
<?php
$mh = curl_multi_init();
$cereri = [];
foreach ([1, 2] as $pagina) {
$ch = curl_init("https://www.dexblog.ro/wp-json/wp/v2/posts?per_page=1&page=$pagina&_fields=id");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_multi_add_handle($mh, $ch);
$cereri[$pagina] = $ch;
}
do {
curl_multi_exec($mh, $active);
$active && curl_multi_select($mh);
} while ($active);
foreach ($cereri as $pagina => $ch) {
echo "Pagina $pagina: " . curl_multi_getcontent($ch) . "\n";
}
Rezultat real (necesită conexiune la internet)
Pagina 1: [{"id":74938}]
Pagina 2: [{"id":108818}]
Exemplul 2: Cerere nerulată
<?php
var_dump(curl_multi_getcontent(curl_init("https://www.dexblog.ro/")));
Rezultat
NULL
Greșeli frecvente
- Dai ca parametru grupul (
$mh), nu cererea. Funcția primește cererea individuală.
Comenzi înrudite
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.curl_multi_info_read: Returnează, pe rând, mesajele despre cererile terminate dintr-un grup cURL: care cerere și dacă a reușit.curl_init / curl_setopt / curl_exec: Pregătește o cerere HTTP către alt server, de exemplu un API. Împreună cu curl_setopt și curl_exec, trimite cererea și primește răspunsul.