curl_multi_getcontent în PHP

Returnează răspunsul unei cereri rulate într-un grup cURL (cu CURLOPT_RETURNTRANSFER activ).

Sintaxă
curl_multi_getcontent(CurlHandle $handle): ?string

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.