curl_multi_select în PHP

Așteaptă până când una dintre cererile unui grup cURL are activitate în rețea, sau până expiră timpul.

Sintaxă
curl_multi_select(CurlMultiHandle $multi_handle, float $timeout = 1.0): int

Ce face curl_multi_select

curl_multi_select blochează scriptul cel mult $timeout secunde, până când una dintre conexiuni poate citi sau scrie date. Se folosește între apelurile curl_multi_exec, ca bucla să nu ruleze în gol.

Parametri

Parametru Descriere
$multi_handle Grupul.
$timeout Opțional. Timpul maxim de așteptare, în secunde.

Ce returnează

Numărul de conexiuni cu activitate, 0 dacă a expirat timpul, sau -1 la eroare.

Exemple

Exemplul 1: Grup gol: nu este nicio activitate

<?php
$mh = curl_multi_init();

var_dump(curl_multi_select($mh, 0.2));

Rezultat

int(0)

Greșeli frecvente

  • Interpretezi rezultatul 0 ca „gata”. Înseamnă doar că în acel interval nu a fost activitate. Starea cererilor o afli din curl_multi_exec.

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_init: Creează un grup în care mai multe cereri cURL rulează în paralel, în loc să aștepte una după alta.